0

我将模型对象发送到强类型视图:

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){

}
4

1 回答 1

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 ? :)
    }
}
于 2013-11-03T19:10:19.720 回答