我正在使用 MVC 和 AJax.BeginForm 对我的页面进行一些 ajax 更新。BeginForm 代码类似于:
using (Ajax.BeginForm("HandleCrop", "Card",
new
{
accept = true,
id = Model.ImageUpload.ID,
file = Model.ImageUpload.File,
imageCropX = Model.CropInfo.X,
imageCropY = Model.CropInfo.Y,
imageCropWidth = Model.CropInfo.Width,
imageCropHeight = Model.CropInfo.Height
},
new AjaxOptions
{
HttpMethod = "POST",
OnComplete = "ConfirmCompleted",
OnSuccess = "ReloadUpload",
OnFailure = "Failure"
}, null))
Model.CropInfo 被作为隐藏字段放入,如下所示:
<%=Html.HiddenFor(m => m.CropInfo.X) %>
<%=Html.HiddenFor(m => m.CropInfo.Y) %>
<%=Html.HiddenFor(m => m.CropInfo.Width) %>
<%=Html.HiddenFor(m => m.CropInfo.Height) %>
然而,这些值正在被一些客户端javascript动态修改,并且这些值需要通过Ajax回调发布到服务器。上面的代码显然不起作用,因为在呈现页面时正在填充 Ajax 表单中的 imageCrop.. 参数(因此全为 0)。
我的问题是:处理这种情况的正确方法是什么?