【发布时间】:2015-11-30 07:35:37
【问题描述】:
我已经阅读了一些关于如何更新局部视图的教程,但它们都以用户交互为起点(例如下拉更改将导致局部视图中的某些数据的更新)。我的情况不同:我试图从控制器开始更新部分视图,而不需要用户在 UI 上进行交互。如果我使用这样的代码:
[HttpPost]
public ActionResult PerformAction(MyModel mymodel)
{
//....do things
return PartialView("Notification", mymodel);
}
浏览器将仅显示部分视图。建议?谢谢
这是主视图:
@using System.Web.UI.WebControls
@model MyApplication.Models.Mymodel
@{
ViewBag.Title = "Home Page";
}
<form class="float_left" method="post" action="@Url.Action("Start", "Home")">
<fieldset>
@Html.TextBoxFor(m => m.Username, new { Value = Model.Message })
<input type="submit" value="Subscribe"/>
<div id="notificationMessage">
@{ Html.RenderPartial("~/Views/Home/PartialView.cshtml", new PartialViewModel()); }
</div>
</fieldset>
</form>
这里是部分:
@using System.Web.UI.WebControls
@model HostedExchangeListener.Models.PartialViewModel
@Html.TextBoxFor(m => m.Message, new { Value = Model.Message })
【问题讨论】:
-
因为您正在返回
PartialView听起来好像您想使用 AJAX 来呈现部分视图?所以它不会重新加载页面 -
在我看到的教程中使用了 Ajax,但它假定页面上有一些用户交互。
-
嗯,有几种方法,您可以在 DOM 加载时使用 ajax 加载到 Partial View 中,或者您可以只将模型传递给 partial。你能发布你想要渲染部分的视图以及你的部分吗?
-
当我第一次加载页面时,部分视图是空的,没关系。但是我希望它根据控制器上的一些逻辑进行更新。视图非常简单(我将更新帖子以显示它们)
-
什么时候更新?马上?或者当事情发生变化时?
标签: c# asp.net-mvc model-view-controller partial-views