MVCコントローラーに次のコードがあります。
[HttpPost]
public PartialViewResult GetPartialDiv(int id /* drop down value */)
{
PartyInvites.Models.GuestResponse guestResponse = new PartyInvites.Models.GuestResponse();
guestResponse.Name = "this was generated from this ddl id:";
return PartialView("MyPartialView", guestResponse);
}
次に、これは私のビューの上部にある私のjavascriptで:
$(document).ready(function () {
$(".SelectedCustomer").change( function (event) {
$.ajax({
url: "@Url.Action("GetPartialDiv/")" + $(this).val(),
data: { id : $(this).val() /* add other additional parameters */ },
cache: false,
type: "POST",
dataType: "html",
success: function (data, textStatus, XMLHttpRequest) {
SetData(data);
}
});
});
function SetData(data)
{
$("#divPartialView").html( data ); // HTML DOM replace
}
});
そして最後に私のhtml:
<div id="divPartialView">
@Html.Partial("~/Views/MyPartialView.cshtml", Model)
</div>
基本的に、私のドロップダウンタグ(SelectedCustomerというクラスがあります)でonchangeが起動されると、postcallが起動されます。これを実行し、コントローラーにデバッグできます。正常に戻ると、PartialViewResultが返されますが、成功したSetData()関数は呼び出されず、代わりに、GoogleChromeコンソールで以下のように500の内部サーバーエラーが発生します。
POST http:// localhost:45108 / Home / GetPartialDiv / 1 500(内部サーバーエラー)jquery-1.9.1.min.js:5 b.ajaxTransport.send jquery-1.9.1.min.js:5 b.extend .ajax jquery-1.9.1.min.js:5(匿名関数)5:25 b.event.dispatch jquery-1.9.1.min.js:3 b.event.add.v.handle jquery-1.9.1 .min.js:3
私が間違っていることについて何か考えはありますか?私はこれをググって死にました!