每当调用控制器中的HttpGet方法时,它都会生成部分视图。
控制器HttpGet方法
[HttpGet]
public ActionResult AddCredit(Guid creditBalanceId)
{
var newCredit = new AddCredits()
{
CreditBalanceId = creditBalanceId
};
return PartialView(newCredit);
}
查看
@model AdminPortal.Areas.Customer.Models.ViewModels.AddCredits
@Html.HiddenFor(m=>m.CreditBalanceId)
<div class="input-small" id="credit">@Html.EditorFor(m=>m.CreditToAdd) </div>
@Html.ActionLink("Add","AddCredit", new {@class="btn"})
每当在部分视图中单击Add按钮时,我都希望将其转发到具有HiddeFor(CreditBalanceId)和CreditToAdd值的控制器的HttpPost方法
[HttpPost]
public ActionResult AddCredit(AddCredits credits)
{
_businessUnitRepository.AddCredits(credits);
Information("Credits Successfully added!");
return RedirectToAction("LicenseDetails");
}
问题
我需要对视图进行哪些更改,以便在单击按钮时,将所有值转发到控制器中的httppost方法?
你试过这个吗?
@using(Html.BeginForm("Add", "AddCredit"))
{
@Html.HiddenFor(m=>m.CreditBalanceId)
<div class="input-small" id="credit">@Html.EditorFor(m=>m.CreditToAdd) </div>
<button type="submit" class="btn">Add Credit</button>
}
使用Html.BeginForm和一种提交类型可以很容易地完成。这个链接是一个很好的MVC4表单示例,它保存到实体框架模型