嗨,我会给你一个像下面这样的例子
在您的控制器中,您有 2 种操作方法,例如(在示例中,我有国家控制器)
(1)
[HttpGet]
public ActionResult Create()
{
return View();
}
(2)
[HttpPost]
public ActionResult Create(Country country)
{
if (ModelState.IsValid)
{
CountryRepository.InsertOrUpdate(country);
CountryRepository.Save();
return RedirectToAction("Index");
}
return View(country);
}
在 asp.net web 表单中,您正在使用页面加载功能。在 mvc [HttpGet] Create Action 中,您使用的方式与页面加载功能相同。
在你看来
@using (Html.BeginForm("Create", "Country", FormMethod.Post))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Country</legend>
@Html.Partial("_CoutnryAddOrEdit", Model)
<p>
<input type="submit" value="Create" id="btnSave" />
</p>
<br />
<p>
<input type="submit" value="GetData" id="btnGetData" />
</p>
</fieldset>
}
在 Html.BeginForm 函数中有不同的参数。在该函数中,您传递参数值,例如第一个参数是您的“动作名称”,第二个是“控制器名称”,第三个是“您的 FormMethod,如 GET 或 POST”
1) Get=> Get 方法在您的页面 Lode 时调用
2) POST => 单击按钮后调用的 Post 方法。
所以你的 Html.BeginForm 看起来像这样 Html.BeginForm("Create","Country",FormMethod.Post)。
因此,在单击您不会执行任何操作的按钮后,您将所有代码都写在 Post Method 上。
我想这会对你有所帮助。