私は、これがどのように動作しているかを判断しようとしています。任意の部分図のようになりますようAjax MVCで部分的なビューを返す5
public ActionResult AddPerson()
{
return PartialView("_AddPerson");
}
_AddPerson.cshtmlが私の見解である/共有フォルダ:私にHomeControllerでこののActionResultで
function addPerson() {
$.ajax({
dataType: "html",
url: '@Url.Action("AddPerson")',
success: function (data) {
$('#Detail').hide();
$('#Detail').html(data);
},
error: function() {
$('#Detail').html("<h3>Couldn't do that</h3>");
}
}
);
:
私はAjaxの私にHomeControllerに電話を持っています。私がしようとしているのは、メインビューのdivに部分ビューのhtmlを追加することです。 IntelerenseはAddPersonのアクションでピックアップしますが、私が実行すると機能が呼び出されたときにこのエラーが発生します:
"リソースの読み込みに失敗しました:サーバーが404のステータスで応答しました(見つかりません)http://localhost:45003/Home/AddPerson"
私は実際には、以前のように部分的なビューを返す以外のことを行うためにコントローラにデータを渡していたという唯一の違いによって、この呼び出しを以前から行ってきました。私は間違ったことをやっているのですか、それとも私が達成しようとしている機能性は可能ではありませんか?
編集:私のRouteConfigそれは重要な場合:
$('#Detail').load(
'<%= Url.Action("AddPerson", "Home") %>'
);
私はViewEngineがビューの名前を理解したいので、通常は 'View()'や 'PartialView()'に文字列を渡しません。あなたの場合、 '_Addperson.cshtml'という名前のビューがありますか? –
ええ、そうです。それはホームフォルダではなく共有フォルダにありますが、私の現場では問題ではないので、どうしてそれがどうなるか分かりません。 Ajaxの呼び出しは失敗し、デフォルトでerror関数が呼び出されますが、ActionResultは呼び出されません。なぜ私の人生は分からない。 – StolenSheep
'AddPerson()'メソッドは 'HomeController'にあり、あなたはデフォルトのルートテーブルを編集しておらず、あなたは権限を持っていませんか? –