0
我有一個MS MVC [剃刀]項目中的視圖,我想通過JSON post操作將視圖數據提交回控制器。我環顧四周,找不到如何檢索和打包視圖數據以便提交回控制器。我假設JSON序列化操作會在調用時打包數據,但這似乎沒有發生。例如:MS MVC(剃鬚刀)訪問視圖數據serializartion
MVC視圖------------------------------
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<center>
<fieldset id="UserCreateFieldset">
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<p>
<input type="button" name="CreateButton" value="Create" onclick="CreateUser()" />
</p>
</fieldset>
</center>
}
<script>
function CreateUser()
{
var infoForm = $("#UserCreateFieldset");
var entries = infoForm.serializer.Serialize(Model);
$.ajax(
{
url: '@Url.Action("CreateUser", "User")',
data: entries,
type: "POST",
dataType: "json",
success: function (data)
{
$.event.trigger({
type: "CreateUserCompleted",
NewUserID: 1,
});
}
});
}
</script>
剛要注意;當通過帖子調用控制器時,它會收回模型 - 但它包含用於加載視圖的原始值。
彼得
感謝您的意見。該建議沒有奏效。也許我應該澄清我想要做的事情。在執行提交操作(由輸入控件啓動)時,在[razor] MVC視圖的默認操作中,將使用視圖中的更新值調用控制器。 我想要做的是在JS腳本函數中執行相同的操作。我不知道當前的視圖數據是如何檢索和打包的[作爲json對象]調用控制器。我上面給出的例子是不正確的,是一個錯字。我意識到/相信使用的Model對象將與init模型相關。 – Peter
是的,我以爲你想將模型傳遞給JavaScript,這是正確的方式來做到這一點。在你的實際問題上,你試圖獲得完整的表單並通過ajax發佈?然後讓我更新答案。 – sergioadh
好的;使用Ajax.BeginForm確實有效。但是在控制器操作被調用後,我得到了一個奇怪的結果。我收到你想要打開或保存CreateUserXXX.json消息。我不知道爲什麼,但我從行動中返回一個結果(我將在稍後需要)。此外,成功功能沒有被調用。 – Peter