2011-05-17 84 views
1

我目前使用ajax發回操作來創建一個新的數據庫對象,然後返回該對象的視圖呈現的HTML。然後我將該html注入到頁面中。正確的方法來避免呈現視圖在行動

我想知道,因爲MVC很容易讓你從控制器內部呈現視圖到HTML,如果有更好的(或更正確的)解決問題的方法。

(我目前使用this code來呈現視圖爲html中的動作)。

任何和所有的想法讚賞。

回答

4

事實上有。只需返回部分視圖。

public ActionResult AjaxStuff() 
{ 
    // do whatever 
    var model = ...; 
    return PartialView(model); 
} 
+0

謝謝。然後如何在客戶端上將該ActionResult呈現爲html。我想用jquery.replaceWith將它注入到dom中。我認爲actionResult是相當重的回報信息的方式不是嗎? – 2011-05-18 19:01:01

0

您可以渲染PartialView作爲建議的其他答案或返回JsonResult並從JSON數據填充您的HTML。你的來電。

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,或者甚至通過jQuery使用.load:http://api.jquery.com/load/