2
我有一個局部視圖,彈出對話框中的代碼如下。但是,在用戶保存部分視圖後,當我再次單擊ActionLink時,該部分視圖中的數據不會刷新,直到我停止調試並重新啓動應用程序。但是,新的記錄在我的數據庫中。另一個問題是當我重新啓動應用程序時,由於下面的錯誤,我無法更新記錄。我錯過了什麼?謝謝。MVC4,使用jQuery渲染對話框中的部分視圖,如何刷新
An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key.
在我看來
<div id="assign-dialog"></div>
的ActionLink的DIV標籤在同一視圖
@Html.ActionLink("Assign", "Edit", "Assignment", new { id = Model.InfoId}, new { @class = "assign-modal" })
jQuery的
$(function() {
$(function() {
$('#assign-dialog').dialog({
autoOpen: false,
width: 400,
height: 500,
resizable: true,
modal: true
});
$('.assign-modal').click(function() {
$('#assign-dialog').load(this.href, function() {
$(this).dialog('open');
});
return false;
});
});
的HTTP GET操作
[HttpGet]
[Authorize(Roles="Admin")]
public ActionResult ViewAssignment(int id = 0)
{
RequestAssignment query = _assignmentRepository.GetCurrentAssignment(id);
return PartialView("_ViewAssignment", query)
}
UPDATE:
我原本跟着下賈森的回答的動態部分javascript/jquery modal popup dialog MVC 4/render partial view的步驟,但不知道要放什麼東西在「客戶端部分,空現在「
......沒關係,所以關閉一些其他帖子我已閱讀這是我能夠想出,但沒有任何反應,當我點擊我的鏈接。
查看HTML
<a href="#" class="dialog-trigger" data-infoId="@Model.InfoId">Assign</a>
<div id="assign-modal">
</div>
jQuery的
//Dialog Box for Assignments
$(".dialog-trigger").on("click", function(event) {
event.preventDefault();
var infoId= $(this).data("infoId");
$.ajax({
url: "RequestAssignment/Edit/" + infoId,
type: "GET"
})
.done(function(result) {
$("#assign-modal").html(result).dialog("open");
});
});
我總是刷新我的諧音與Ajax調用。看看我的答案這裏的例子http://stackoverflow.com/questions/19643864/how-do-i-render-a-partial-form-element-using-ajax/19643974#19643974 –
謝謝。我認爲這是我陷入困境的地方。我查看了數十篇文章,並且無法確定如何使其變爲動態,因爲它會根據ID調出編輯視圖。我認爲問題是我無法將ID從View傳遞到jQuery。我原本有一個帶有data-Id屬性的內聯標籤,我認爲這個標籤通過了變量。我看了這個動態的例子http://stackoverflow.com/questions/16577011/javascript-jquery-modal-popup-dialog-mvc-4-render-partial-view並沒有任何成功 –
如果你使用ajax調用有一個數據參數,您可以使用要發送到視圖的標識設置數據參數。只要數據中的變量完全匹配控制器上的輸入參數,它就會通過 –