我目前使用ajax帖子回到一个动作来创建一个新的数据库对象,然后返回渲染的html以获取该对象的视图。然后我将html注入页面。
我很想知道,因为如果有更好(或更正确)的方法来解决问题,MVC很容易让你从控制器内部呈现HTML视图。
(我目前使用this code将视图渲染为动作中的html。
赞赏任何和所有想法。
答案 0 :(得分:4)
事实上有。只需返回部分视图。
public ActionResult AjaxStuff()
{
// do whatever
var model = ...;
return PartialView(model);
}
答案 1 :(得分:2)
你可以使用PartialView渲染它或通过JSON自定义它(PartialView非常简单!)。
这实际上取决于您的实施和有关优雅降级的选择。
我通常做的是:
[HttpGet]
public ActionResult SignIn()
{
//Check if it is an AJAX request
if (Request.IsAjaxRequest())
return PartialView();
else
return View();
}
所以有可能得到你的蛋糕并吃它。
说实话,有多种方法可以从服务器获取此视图。您可以使用asp.net mvc ajax js库,使用.getJSON或.ajax,甚至可以使用.load执行它:http://api.jquery.com/load/
答案 2 :(得分:0)
您可以像建议的其他答案一样呈现部分视图,或者返回JsonResult并从JSON数据填充HTML。你的电话。