ASP.NET MVC获取id参数到控制器

时间:2014-10-30 16:22:30

标签: asp.net-mvc

我在视图中使用

using (Html.BeginForm("Test", "AcceptStatement", "Account", FormMethod.Post, new { id = Model.StatementID }))
控制器中的

 public ActionResult AcceptStatement(int id)

但控制器中的id参数最终为null值。如何使用idHtml.BeginForm参数值输入控制器?

2 个答案:

答案 0 :(得分:0)

使用this:

中的信息

基本上,您的观点:

   @using (Html.BeginForm()){    
         <p> Title: @Html.TextBox("SearchString") <br />   
         <input type="submit" value="Filter" /></p> 
        } 
</p>

使用Controller:

public ActionResult Index(string searchString) 
{           
     var movies = from m in db.Movies 
                  select m; 

    if (!String.IsNullOrEmpty(searchString)) 
    { 
        movies = movies.Where(s => s.Title.Contains(searchString)); 
    } 

    return View(movies); 
}

将模型的值传递给控制器​​方法的替代方法是使用:

@Html.ActionLink("Details", "Details", new { id=item.BayID }) 

您的控制器方法类似于:

 public ActionResult Details(int? id)
 {
  ...

答案 1 :(得分:0)

您正在使用BeginForm的错误重载。您目前正在通过以下内容:

  • actionName:“测试”
  • controllerName:“AcceptStatement”
  • routeValues:“帐户”
  • formMethod: FormMethod.Post
  • htmlAttributes: { id = Model.StatementID }

这显然是错误的,因为它毫无意义。你可能想要:

Html.BeginForm("AcceptStatement", "Account", new { id = Model.StatementID }, FormMethod.Post, null)

使用this重载。