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 に答える