我在我的MVC控制器下面的代碼:我的視圖頂部渲染一個簡單的ASP.NET MVC PartialView使用JQuery的Ajax調用後
[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開了它應該發射崗位電話。其中它,我可以調試到我的控制器,它甚至可以追溯到成功傳回PartialViewResult但隨後成功的SetData()函數犯規被調用,而是我得到一個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
任何想法我做錯了什麼?我已經把這個一個人殺了!
不錯的地方,只是意識到它沒有意義我這樣做,並將它作爲查詢字符串/路由值傳遞。但我認爲我發現問題是我的分部觀點,我不得不改變它是返回PartialView(「MyPartialView」,guestResponse); – User101 2013-03-17 21:52:48
我的意思是返回PartialView(「〜/ Views/MyPartialView.cshtml」,guestResponse);相反,這很奇怪,因爲它應該只是不工作? – User101 2013-03-17 21:53:09
你必須完全指定的觀點是,究其原因是因爲你沒有把它放在默認的位置之一,即〜/查看/ WhateverTheControllerNameIs/MyPartialView.cshtml或〜/查看/共享/ MyPartialView.cshtml – StanK 2013-03-18 01:03:55