在ASP.NET MVC中使用HTML表单?

Mit*_*rax 3 asp.net-mvc

似乎我在这个主题上所看到的一切都要么自发布以来发生了变化,要么与彼此截然不同.

我只是想在我的视图中创建一个简单的表单.

我应该使用Html.BeginForm()/ TextBox()/ EndForm()方法还是应该使用普通的HTML表单?哪个更受欢迎?

这是我到目前为止:

<%=Html.BeginForm("Create", "Product", FormMethod.Post); %>  
    <%=Html.TextBox("productTextBox", "Enter a shoe name"); %>  
    <input type="submit" name="createButton" value="Create Me!" />    
<%=Html.EndForm(); %>  
Run Code Online (Sandbox Code Playgroud)

在ASP.NET MVC中使用按钮和文本框创建简单表单的"正确"方法是什么,并允许我将表单中的数据提交到/ Product/Create操作?

然后,我如何从该方法中访问表单数据?有些人似乎使用"FormCollection"而其他人只是使用Request.Form方法.我应该使用哪种方式?

有人可以开导我吗?

And*_*rse 5

表单助手是推荐的方式,因为它允许您提供一个控制器,动作和其他路由数据和URL是自动生成基于你的路由(在Global.asax中).优点是,如果您决定更改路线,则无需更新站点中的每个URL.

我会用实际的唯一原因"的<form>"标签是,如果我需要在我不能从的Html.Form得到(我想不出一个例子现在)标记额外的控制.即使您选择这样做,你应该使用"Url.Action"帮手从路由数据获取URL.例如:

<form action="<%= Url.Action("Create") %>">
Run Code Online (Sandbox Code Playgroud)

至于你的第二个问题,我建议使用Model Binder.查看ScottGu的博客,了解相关的一些细节.