如何使用Html.BeginForm()传入ID?

在ASP.NET MVC中,我使用了HTML帮助器

Html.BeginForm("ActionName", "Controller", FormMethod.Post); 

但是我需要发布到:/ controller / action / 23434

我如何传入ID?

马特应该工作正常。 如果你仍然通过FormMethod.Post ,但是,你需要这样做:

 Html.BeginForm("action","controller", new { Id = 12345 }, FormMethod.Post); 

反转第三个和第四个参数将导致Id被视为属性而不是路由值。

Html.BeginForm("action", "controller", new {Id = 12345})

 Html.BeginForm("action", "controller", new { id = ViewBag.FileID }, FormMethod.Post, new { id = "feedbackform" }) 

至于querystring, ?type=golden ,我不知道该怎么做。 当然,一个查询是一个get,并破坏FormMethod.Post的整个目的。 我的意思是,你可以使用FormMethod.Get ,如果你想查询string数据,这可能是你在找什么。

另外,您可以避免使用html.beginform ,并使用表单标签手动执行querystring,get + post。

第三,如果你使用的是表单,你可以创build一个隐藏字段:

 [input type=hidden name="type" value="golden"] 

然后,当提交button被按下时,值作为表单variables正确传递。