2014-10-30 153 views
0

我鉴于ASP.NET MVC获取ID参数控制器

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

在控制器使用方法:在控制

public ActionResult AcceptStatement(int id) 

id参数最终成为一个null值。我怎样才能得到id参数值到我的控制器与Html.BeginForm

+0

我没有以您使用它的方式看到该版本的BeginForm。确保您正确调用BeginForm。 – 2014-10-30 16:28:54

回答

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过载。

+0

谢谢,它已经解决了! – trilobit 2014-10-30 16:45:08

0

使用信息中this:

基本上,你的视图:

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

随着一个控制器:

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) 
{ 
    ... 
+0

这是如何解决问题的? – 2014-10-30 16:31:01

+0

显示OP如何将输入/模型值传递给控制器​​。很好,我希望。 – jbutler483 2014-10-30 16:33:11

+0

同样,这与问题(这是不正确的Html.BeginForm的用法)有什么关系? – 2014-10-30 16:35:58