我有我的主要共享视图(_Layout):
<div class="slide-out-div">
<a class="handle" href="http://link-for-non-js-users">Content</a>
@{Html.RenderAction("Feedback", "Home");}
</div>
它是一个包含表单的幻灯片(无需担心)。 (Feedback.cshtml) 那个控制器/动作得到了正确的视图,但是当我进行提交时,整个视图都会更新,我只想让“RenderAction”更新另一个视图“谢谢你”
我的表单(Feedback.cshtml)如下所示:
@model project.FeedbackViewModel
@{
ViewBag.Title = "Feedback";
}
<h2>Feedback</h2>
@using (Html.BeginForm("Feedback", "Home", FormMethod.Post))
{
@Html.ValidationSummary()
<p>User:</p>
<p>@Html.TextBoxFor(m => m.UserName, new { @readonly = "readonly" })</p>
<p>Last Name:</p>
<p>@Html.TextBoxFor(m=>m.UserEmail, new { @readonly = "readonly" })</p>
<p>Message:</p>
<p>@Html.TextAreaFor(m=>m.Description, new { @cols = 80, @rows = 10 })</p>
<input type="submit" value="Submit" />
}
和行动叫:
公共ActionResult反馈() { // blah blah blah
return PartialView(fbVM);
}
[HttpPost]
public ActionResult Feedback(FeedbackViewModel model)
{
if (ModelState.IsValid)
{
//put data in DB
return View("~/Views/Home/FeedbackThanks.cshtml");
}
return View(model);
}
我应该返回PartialView吗?更改RenderAction?我做错了什么?
get方法有效。 返回View解决方案会出现此错误:
异常详细信息:System.InsufficientExecutionStackException: 堆栈不足以继续安全地执行程序。这个可以 因为在调用堆栈或函数上有太多函数而发生 堆栈使用了太多的堆栈空间。
如果我使用PartialView,整个页面将呈现新视图而不仅仅是反馈div。