我是 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; }:这是什么?
答案 0 :(得分:3)
方法签名:
public static MvcForm BeginForm(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
FormMethod method,
Object htmlAttributes
)
类型:System.String 行动方法的名称。
类型:System.String 控制器的名称。
键入:System.Web.Mvc.FormMethod 用于处理表单的HTTP方法,GET或POST。
类型: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"
...