我一直在試圖弄清楚這是如何工作的,或者並非如此。使用Ajax MVC返回部分視圖5
我有一個Ajax調用我的HomeController:
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>");
}
}
);
有了這個ActionResult的在我的HomeController:
public ActionResult AddPerson()
{
return PartialView("_AddPerson");
}
_AddPerson.cshtml是我的意見/共享文件夾作爲任何局部視圖會。
我想要做的就是在部分視圖中將html附加到我的主視圖中的div。 Intelisense啓動AddPerson操作,但是當我運行它時,我在Chrome中調用該函數時出現此錯誤:
「加載資源失敗:服務器響應狀態爲404(未找到)http://localhost:45003/Home/AddPerson」
我實際上得到了這個調用以前唯一的區別是我傳遞數據到控制器做一些事情,而不僅僅是返回部分視圖。我做錯了什麼或者我試圖達到甚至不可能實現的功能?
編輯:我RouteConfig如果它的事項:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我通常不會將字符串傳遞給View()或PartialView(),因爲我更喜歡ViewEngine找出視圖的名稱。你的情況你有一個名爲'_Addperson.cshtml'的視圖? –
是的,我喜歡。它位於Shared文件夾而不是Home文件夾中,但在我的工作調用中,這不是問題,所以我真的不知道如何導致它。 Ajax調用失敗並且默認爲錯誤函數,ActionResult從不調用。我不知道爲什麼我的生活。 – StolenSheep
所以,你的'AddPerson()'方法在'HomeController'上,並且你還沒有編輯默認路由表,並且你沒有任何授權? –