2009-11-26 62 views
1

我對我的MVC項目有疑難解答。我試圖做到這一點:MVC中發佈的問題

在視圖上,我正在加載一些數據在jqgrid上,並基於用戶的選擇,我將這些選擇保存在一個javascript VAR中,並且我通過$ post傳遞了它到控制器的動作,該動作應該稱爲它自己的視圖並加載我先前通過的數據。

傳遞數據工作正常,但當數據到達新視圖(第二個)時,它不會加載;我做了一個調試,以確認數據到達第二個視圖,但該頁面沒有顯示。

這是我的JavaScript代碼:

$.post("/MyController/MyAction", { strParams: myParam }); 

這是我的控制器

public ActionResult MyAction(string[] strParams){... return View(myobject);} 

這是我的第二觀點報頭:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/SiteIC.Master" Inherits="System.Web.Mvc.ViewPage<object[]>" %> 

...

我沒有看到w這裏是問題,除了沒有顯示的第二個視圖之外,所有的事都通過了。

回答

2

你預計的看法加載?當你做

$.post("/MyController/MyAction", { strParams: myParam }); 

這將只是張貼到控制器動作,什麼也不做的結果(您可以確認一個AJAX調用使用螢火執行)。如果你打算到某處注入所產生的HTML到您的控制器動作需要返回的局部視圖,而不是DOM

$.post("/MyController/MyAction", { strParams: myParam }, function(result) { 
    // result variable will contain the HTML rendered by the action 
}); 

另外:如果你想要做的事與控制器操作返回的結果,你可以試試這個完整視圖:

public ActionResult MyAction(string[] strParams) 
{ 
    // ... 
    return PartialView("~/Views/MyController/MyAction.ascx", myobject); 
} 
1

您將只返回使用視圖MyAction的return View(myobject);你可以嘗試

return View("yourviewname", myobject); 

善良,