我目前使用ajax發回操作來創建一個新的數據庫對象,然後返回該對象的視圖呈現的HTML。然後我將該html注入到頁面中。正確的方法來避免呈現視圖在行動
我想知道,因爲MVC很容易讓你從控制器內部呈現視圖到HTML,如果有更好的(或更正確的)解決問題的方法。
(我目前使用this code來呈現視圖爲html中的動作)。
任何和所有的想法讚賞。
我目前使用ajax發回操作來創建一個新的數據庫對象,然後返回該對象的視圖呈現的HTML。然後我將該html注入到頁面中。正確的方法來避免呈現視圖在行動
我想知道,因爲MVC很容易讓你從控制器內部呈現視圖到HTML,如果有更好的(或更正確的)解決問題的方法。
(我目前使用this code來呈現視圖爲html中的動作)。
任何和所有的想法讚賞。
事實上有。只需返回部分視圖。
public ActionResult AjaxStuff()
{
// do whatever
var model = ...;
return PartialView(model);
}
您可以渲染PartialView作爲建議的其他答案或返回JsonResult並從JSON數據填充您的HTML。你的來電。
這是真的,你可以使用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,或者甚至通過jQuery使用.load:http://api.jquery.com/load/
謝謝。然後如何在客戶端上將該ActionResult呈現爲html。我想用jquery.replaceWith將它注入到dom中。我認爲actionResult是相當重的回報信息的方式不是嗎? – 2011-05-18 19:01:01