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

3

看起来我查找的所有关于这个主题的内容,要么自发布以来就发生了变化,要么彼此之间差异巨大。

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

我应该使用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(); %>  

什么是使用 ASP.NET MVC 创建一个简单的表单,包含一个按钮和文本框,并允许我将表单数据提交到 /Product/Create 操作的“正确”方法?
然后,我如何在该方法中访问表单数据?有些人似乎使用“FormCollection”,而其他人则只是使用 Request.Form 方法。我应该使用哪种方式?
有谁能为我解答一下吗?
3个回答

5

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

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

<form action="<%= Url.Action("Create") %>">

对于你的第二个问题,我建议使用模型绑定器。可以查看ScottGu的博客了解一些详细信息。


1

看一下链接。 这是德语文本,但代码应该是可以理解的。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接