我有一個下拉選擇id StaffId。我正在做的是一旦一個項目被選中,我想通過StaffId傳遞給控制器,以使用staffId獲取數據庫中的記錄。這會在頁面加載時給出錯誤,而不會將StaffId傳遞給控制器。下面是摘錄MVC5阿賈克斯更新
控制器
[HttpPost]
public PartialViewResult GetStaffPosts(int? id)
{
var sPost = db.StaffPosts.Where(a => a.StaffId == id.Value);
return PartialView(sPost.ToList());
}
<div id="divPartialView">
@{Html.RenderPartial("GetStaffPosts");}
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#StaffId").change(function (event) {
var options = {};
options.url= "/StaffPost/GetStaffPosts/" + $(this).val(),
options.data= { id: $(this).val() },
options.cache= false,
optionstype= "POST",
options.dataType= "html",
options.success= function (data, textStatus, XMLHttpRequest) {
$("#divPartialView").html(data); // HTML DOM replace
$.ajax(options);
}
});
});
</script>
您可以在此處添加控制器代碼嗎? – hasan
爲什麼你用HttpPost代替HttpGet,你試圖從db中獲取數據,在這種情況下你應該使用[HttpGet]。我會建議使用jquery load方法來解析你的分數視圖與數據庫數據到目標html元素 – hasan