我有一個編輯頁面,當我按下按鈕,然後將名爲#main的頁面的給定部分的div更改爲另一個頁面時,我想提交一些更改到服務器,以便用新信息更新它。將修改後的模型提交回控制器
要做到這一點,我不認爲我可以使用提交按鈕(糾正我,如果我錯了?),所以我使用jquery函數來處理頁面的選定部分的點擊和更改。
當前發送到服務器的對象是空的,而不是修改的內容。
這裏是有問題的看法:
@model Project.Models.ExampleModel
@using (Html.BeginForm())
{
<fieldset>
<legend>Edit Example: @Model.name</legend>
<br/>
@Html.LabelFor(c => c.name)
@Html.TextBoxFor(c => c.name)
<br/>
@Html.LabelFor(c => c.dropdown)
@Html.DropDownListFor(c => c.dropdown, Model.dropdowns)
<br />
<br />
<input type="button" data-edit-id="@Model.id" value="Submit Changes" />
</fieldset>
}
<script type="text/javascript">
$(document).ready(function() {
$('input[data-edit-id]').on('click', function() {
var id = $(this).attr('data-edit-id');
console.log(id);
$.post('Home/EditPage', '@Model');
$("#main").load("/Home/NewDivPage?id=" + id);
});
});
</script>
任何幫助是極大的讚賞
是否會被執行您正在使用jQuery處理程序** post **(這是一個ajax調用)手動執行發佈操作,您將需要讀取所有HTML輸入,創建JSON對象(或其他格式)並將其發送到服務器。您不能在該上下文中使用** @ Model **。 – gustavodidomenico
我明白了,那正是我試圖避免做的事情,但我想我必須這樣做!謝謝 – user1857900
看看ajax mvc helper,就像** @ Ajax.BeginForm()** ...它可以幫助你避免一些不需要的客戶端代碼。 – gustavodidomenico