2013-11-03 59 views
0

我送一個模型對象的強類型視圖發送相同的模型實例回控制器:從控制器發送模型實例來查看和使用AJAX調用

public ActionResult Index() 
{ 
    ReportModel model = new ReportModel(); 
    return View(model); 
} 

我想要的看法發回同一型號實例回到另一個在jQuery中使用ajax的ActionMethod。

$.ajax({ 
     url: '/Report/getPT', 
     type: 'POST', 
     data: { 
      model:'@Model' 
     } 

這是接收相同模型實例的ActionMethod。

public ActionResult getPT(ReportModel model){ 

} 

回答

0

這取決於您希望對服務器上的模型做什麼以及您希望返回的內容。 您是否希望返回部分視圖或僅顯示提交內容的內容?

你有幾種選擇。

您可以使用Ajax形式

@using (Ajax.BeginForm("getPT", new AjaxOptions { HttpMethod="POST", UpdateTargetId = "UpdateContainer" })) 
{ 
    <!-- FORM elements goes here... --> 
} 

在視圖發送模式,將

<div id="UpdateContainer"></div> 

如果要渲染的局部視圖

,而不是返回的ActionResult,集行動返回PartialViewResult

public PartialViewResult getPT(ReportModel repModel) 
{ 
    // instantiate a viewmodel 
    var model = new YourViewModel(); 
    return PartialView("YourPartial", model); 
} 

或者,如果你不需要它返回一個局部視圖,也許你只需要知道提交是如何進行的,那麼你可以用你的代碼嘗試的jQuery發送它到一個WEB API控制器

public class ApiTestController : ApiController 
{ 
    public bool getPT(ReportModel model) 
    { 
     // do the work with your model 
     return ..... whatever ? :) 
    } 
} 
相關問題