Sam*_*tar 2 asp.net-mvc jquery asp.net-mvc-3
我有一个显示数据表的网页.我的页面上有一些关于某些元素的jQuery,当元素发生变化时,会对数据库进行Ajax调用,并在数据库中更新元素.
我还需要有时完全刷新数据网格.在我看来,有两种方法可以做到这一点:
1)使用AJAX调用我的控制器行动,检查是否是使用Request.IsAjaxRequest一个Ajax请求,返回HTML.Partial到调用Ajax和有更新的HTML的JavaScript.我已经有90%的工作方法了.
2)使用以下内容:
<div id="#thingy">@Html.Action("Detail", new { ac, me })</div>
$('#thingy').load("@Server.JavaScriptStringEncode(Url.Action("Detail", new { ac, me }))");
Run Code Online (Sandbox Code Playgroud)
现在我仍然试图让第一种方法工作,但也看第二种方法,并认为它看起来更容易.
我想编写有效的代码,但也想编写符合MVC工作方式的代码.考虑到这一点.哪个可能是最好的方法?关注我的一件事是@ Server.Java ...代码.我以前从未见过这个,我想知道如何用MVC处理这个问题,是否所有正常的安全性都得到了应用?
梅丽莎,
我几乎肯定坚持使用部分视图(和@RenderPartial()
)如果视图中的模型与部分视图中的模型相同,否则您可以选择@RenderAction()
帮助程序在您的视图中调用数据刷新,其中基本数据类型与基本视图数据类型.
您可以从您的应用程序中了解哪种方法最适合相关用例,但绝对是RenderPartial()将是主要的方法,其中ajax更新需要在稍后的部分更新html in div.
[编辑] - 这是我将如何在实践中看到这一点:
// this is a div contained within the main Detail.cshtml view
<div id="#thingy">@Html.RenderPartial("_Detail", Model)</div>
Run Code Online (Sandbox Code Playgroud)
这将在第一次传递时自动填充模型中的div与名为_Detail.cshtml的partialview.随后,您将调用您的ajax以通过按照上述方式返回部分视图和模型的操作来定位此相同的div(#thingy).
即:
public ActionResult Detail(string ac, string me) {
vm.AdminDetails = _link.Detail(ac + me).ToList();
if (Request.IsAjaxRequest())
return PartialView("_Detail", vm);
return View(vm);
}
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的.
祝好运
归档时间: |
|
查看次数: |
8584 次 |
最近记录: |