对表单提交的共享视图的反馈

时间:2014-07-10 15:15:20

标签: c# asp.net-mvc forms razor

我有我的主要共享视图(_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。

0 个答案:

没有答案