关于Html.BeginForm在.cshtml视图中工作的一些疑问?

时间:2014-03-13 16:06:56

标签: c# asp.net-mvc razor

我是 C#(我来自Java)的新手,我对.NET处理 .cshtml 文件中的表单有以下疑问。

在名为 Index.xshtml 的视图中,我有类似的内容:

@using (Html.BeginForm("Index", "Vulnerability", FormMethod.Post, new { id = "MyForm" }))
{

    <div class="ui-field-contain">
        <label for="Filter_CVE">CVE:</label>
        <input type ="text" data-mini="true" data-clear-btn="true" id="Filter_CVE" name="Filter.CVE"  value="@Model.Filter.CVE"   />
    </div>   

    <div data-role="controlgrup" data-type="horizontal" data-mini="true">
        <input type="reset" data-inline="true" data-mini="true" value="Reset" />
        <input type="submit" data-inline="true" data-mini="true" value="Seach" data-icon="search" />
    </div>
}

现在我很清楚这段代码创建了一个表单和2个按钮。我的怀疑与这条线有关

@using (Html.BeginForm("Index", "Vulnerability", FormMethod.Post, new { id = "MyForm" }))

查看官方文档(此处:http://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform%28v=vs.118%29.aspx),我无法找到我的情况。

那么之前 BeginForm 方法参数的含义是什么?

我认为他们可能是:

  • 索引:它代表页面名称? (我的观点名为** Index.xshtml)

  • 漏洞:代表什么?

  • FormMethod.Post:我认为这指定表单发送是POST

  • new {id =&#34; MyForm&#34; }:这是什么?

3 个答案:

答案 0 :(得分:3)

documentation for that

方法签名:

public static MvcForm BeginForm(
    this HtmlHelper htmlHelper,
    string actionName,
    string controllerName,
    FormMethod method,
    Object htmlAttributes
)
  • actionName

类型:System.String 行动方法的名称。

  • controllerName

类型:System.String 控制器的名称。

  • 方式

键入:System.Web.Mvc.FormMethod 用于处理表单的HTTP方法,GET或POST。

  • htmlAttributes

类型:System.Object 包含要为元素设置的HTML属性的对象。

答案 1 :(得分:1)

索引:这是您的操作名称

漏洞是控制器的名称

FormMethod.Post 表示表单是通过POST发送的

new {id =&#34; MyForm&#34; } 是html属性,在这种情况下,<form>标记将获取MyForm的ID

想象一下,VulnerabilityController中有以下代码:

public ActionResult Index() {

} 

您的表单会将HTML输入字段中输入的所有数据发送到索引操作(通过POST)

答案 2 :(得分:1)

索引:这是您的View,并将作为操作方法

在控制器中显示

漏洞:这是您的controller

FormMethod.Post :设置表单Method

new {id =“MyForm”} :这会设置表单的ID,如<form id="MyForm" ...