【问题标题】:Reading integer from TextBox in MVC 3从 MVC 3 中的 TextBox 读取整数
【发布时间】:2011-12-14 17:37:57
【问题描述】:

大家好,从视图中的文本框中读取值并将其转换为相应控制器中的整数的最佳方法是什么?

查看:

@{
    ViewBag.Title = "Index";
}

<h2>Administration</h2>

<p>
    Page number:
    @Html.TextBox("pageNumber")

    @Html.ActionLink("Fetch stats", "FetchStats", "Admin", null,
             new { @style = "text-transform:capitalize;" })


</p>

控制器:

public ActionResult FetchStats(int pageNumber)
    {
    CurrentGameNumber = pageNumber;
    [...]

    return View("Index");

}

【问题讨论】:

    标签: c# asp.net asp.net-mvc-3 c#-4.0


    【解决方案1】:

    这是一个简单的例子。我们将在 View 中的表单中添加一个名为“PageNumber”的文本框,以将数据发布到 FetchStats 操作方法。 MVC 将负责所有的管道,实例化控制器并调用 FetchStats 操作方法,同时提供 pageNumber 作为整数。

    查看

    @{
        ViewBag.Title = "Index";
    }
    
    <h2>Administration</h2>
    
    @using (Html.BeginForm("FetchStats", "Admin")) {    
    <p>
        Page number:
        @Html.TextBox("pageNumber")
    
        <input type="submit" value="Fetch Stats" />
    </p>
    }
    

    动作方法

    [HttpPost]
    public ActionResult FetchStats(int pageNumber)
    {
        CurrentGameNumber = pageNumber;
    }
    

    【讨论】:

    • 我收到此错误:参数字典包含方法“System.Web.Mvc.ActionResult FetchStats(Int32)”的不可为空类型“System.Int32”的参数“pageNumber”的空条目在“NHLStats2.Controllers.AdminController”中。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
    • 您能否从您的视图中使用 sn-p 更新您的问题,包括表单和 PageNumber 文本框?
    • 我已经更新了我的答案。我们需要此案例表格才能将帖子发布到FetchStats(int pageNumber) 操作方法。这也是我添加提交按钮的原因。要使用操作链接,您必须使用一些客户端脚本(可能是 jQuery)来修改链接的 href 以对 FetchStats 方法执行 GET 并包含 ?pageNumber=[PAGENUMBERHERE] 作为查询字符串参数。
    • 完美运行。简单高效!
    【解决方案2】:

    您可以使用带有 AJAX 的 HttpPost 或常规函数。基本上,您需要创建一个模型,然后创建一个与模型变量对应的文本字段。然后,您可以轻松地在 Controller Action 方法中操作您的模型数据。请检查此链接。作者展示了一种创建联系表单的方法,这基本上是您的问题,并以更扩展的方式:http://derans.blogspot.com/2011/05/contact-form-revisited-with-aspnet-mvc.html。我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 2016-07-26
      • 2014-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多