2016-11-15 4 views
0

AJAXリクエストを使用してコントローラメソッドを呼び出しています。 この関数は部分的なビューを返すために使用されるので、HTML要素にそのビューをロードします。強く型付けされたモデルを渡すときにMVC PartialViewがレンダリングされない

機能:

public PartialViewResult LoadLockTimerEnd() 
{ 
    Session["Info"] = new Request(); 
    RequestReply reqRep = new RequestReply("/Home/Index", "ID missing. Reseting"); 
    return PartialView("FailurePartialView", reqRep); 
} 

このPartialViewにモデルとして、単純な文字列を渡すときに、それが正常に動作しますが、モデルとしてRequestReplyオブジェクトを渡すときに、それが動作していないとpartialViewが全くロードされていません。

PatialView:

@model EPS_WEB_SITE.Models.RequestReply; 
@{ 
    Layout = "~/Views/Shared/_FailureLayout.cshtml"; 
} 
<strong>@Html.Raw(@Model.Message.ToString())</strong> 
<div class="buttons-container button-container-small"> 
    <div data-request-url="@Model.RedirectURL.ToString()"> 
      <button type="button" id="dismiss-failure-btn" class="btn btn-danger dismiss">Dismiss</button> 
    </div> 
</div> 

AJAX呼び出し:

$.get('/Home/LoadLockTimerEnd', function (data) { 
    $("#resultDiv").html(data); 
}); 

はなぜPartialViewはモデルとしてのモデルではなく、クラスなどの文字列で動作しますか?

+0

あなたはアヤックスを使用してそれを呼び出すにはどうすればよいです..あなたが方法を共有することができます助けを願っていますか? –

+0

EDIT:ajax呼び出しを追加しました。コードがコントローラメソッドに入っているが、後で何も起こらないのでAJAX呼び出しが問題だとは思わない –

+0

Answerを試しましたか? –

答えて

0
$.ajax({ 
    dataType: "HTML", 
    url: '/Home/LoadLockTimerEnd', 
    success: function (data) { 
     $("#resultDiv").html(data); 
    } 
}); 

は、このよう

+0

これはOPのコードと全く同じです!( '$ .get()'は '$ .ajax()'のショートカットです) –

+0

これはdataTypeがHTMLであり、それを試してもらうように頼まれました(これは問題であるかもしれません) –

+0

'$ .ajax()'と '$ .get()'は、 'dataType'が指定されていない場合、 –

0

OKを使用してアクションを呼び出すようにしてくださいので、私は問題を発見: それはコンパイルエラーでした。 削除する必要がありました。ビューのモデルバインディングで

@model EPS_WEB_SITE.Models.RequestReply; 

Chromeブラウザの[ネットワーク]タブでこれを確認できました。 問題のある要求をダブルクリックすると、サーバーのエラーが表示されます。

はそれが誰か

関連する問題