我是Asp.Net MVC的新手,我无法弄清楚如何更新部分视图的帖子数据。我对GET没有问题,并在局部视图中显示数据。
我不确定在父页面的post方法中将部分视图数据的后置代码放在哪里?或局部视图的后期方法?
当我运行下面的代码时,我在提交时收到此消息。
“在控制台'Registration.Web.Controllers.AgreementsController'上找不到公共操作方法'ScoreRelease'。”}
它在初始页面加载时找到控制器,但在我调用return View(“Review”)时却找不到;在post方法中。
从“审核”页面调用的Parial View
@{Html.RenderAction("ScoreRelease", "Agreements");}
评分发布部分视图
@model Registration.Web.Models.ReviewModel.ReleaseScore
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<div class='group' id='data_release'>
<h4>
Data Release
</h4>
<p>
Do you wish to release your scores?
</p>
<ul class='input_group'>
<li>
@Html.RadioButtonFor(model => model.ReleaseScoreIndicator, true)
<label>
Yes
</label>
</li>
<li>
@Html.RadioButtonFor(model => model.ReleaseScoreIndicator, false)
<label>
No
</label>
</li>
</ul>
<input type="submit" value="Save" />
</div>
}
审核控制器
public ActionResult Review()
{
return View();
}
[HttpPost]
public ActionResult Review(ReviewModel.ReleaseScore model)
{
var agmtsService = new AgreementsService();
agmtsService.UpdateReleaseScoreIndicator(model.ReleaseScoreIndicator);
return View("Review");
}
[HttpGet]
public ActionResult ScoreRelease()
{
var agmtsService = new AgreementsService();
bool scoreRelease = agmtsService.GetReleaseScoreIndicator();
var vm = new ReviewModel.ReleaseScore();
vm.ReleaseScoreIndicator = scoreRelease;
return PartialView(vm);
}
答案 0 :(得分:1)
使用带参数的Html.BeginForm:
@using (Html.BeginForm("Action", "Controller", FormMethod.Post))
答案 1 :(得分:0)
您必须将Post Method放在Partial View中。您可以通过Html.BeginForm()
或Ajax.BeginForm
进行双向操作。如果您在弹出窗口中显示此部分视图,那么最好将其用作Ajax。无论您在视图中执行什么操作,都必须在控制器中使用[httppost]
标记创建相同的方法名称。