【问题标题】:Using HTML forms in ASP.NET MVC?在 ASP.NET MVC 中使用 HTML 表单?
【发布时间】:2009-04-08 08:47:57
【问题描述】:

似乎我在这个主题上查找的所有内容自发布以来都发生了变化,或者彼此完全不同。

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

我应该使用 Html.BeginForm()/TextBox()/EndForm() 方法还是应该使用普通的 jane 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 方法。我应该使用哪种方式?

谁能启发我?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

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

    我使用实际的“

    ”标签的唯一原因是如果我需要对无法从 Html.Form 获得的标记进行额外控制(我现在想不出一个例子)。即使您选择这样做,您也应该使用“Url.Action”帮助程序从路由数据中获取 URL。例如:
    <form action="<%= Url.Action("Create") %>">
    

    至于第二个问题,我建议使用 Model Binder。查看ScottGu's Blog 了解更多详情。

    【讨论】:

      【解决方案2】:

      看看Link。 这是德语文本,但代码应该可以理解。

      【讨论】:

        【解决方案3】:

        你看过这个吗:

        http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx

        出自马口,与最终版本保持同步。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-09
          相关资源
          最近更新 更多