提问人:rwkiii 提问时间:11/11/2022 最后编辑:rwkiii 更新时间:11/12/2022 访问量:68
ASP.NET MVC 5:模型未从 Razor 窗体 w/jQuery Mobile 绑定到 HttpPostedFileBase
ASP.NET MVC 5 : model not binding to HttpPostedFileBase from Razor form w/jQuery Mobile
问:
我已经阅读了这个问题的许多可能原因和解决方案,但我看不出其中任何一个可以帮助我。
我正在对使用 jQuery-2.2.4 和 jQuery-mobile-1.4.5 的现有项目进行更改
不知何故,jQuery-mobile 干扰了元素绑定到模型。在我的视图的_Layout中注释掉以下代码行可以成功绑定模型:<input type='file' ...
<script type="text/javascript"
src="@Url.Content("~/Scripts/jquery.mobile-1.4.5.min.js")"></script>
这也破坏了现有 UI 的布局。将项目转换为 Bootstrap 等人在短期内是行不通的。
将 jQuery 更新到 3.6.1,但这会破坏锁定到 jQuery 2.n.n 的 jQuery-mobile 1.4.5
更新到 jQuery-mobile-1.5.0rc。它似乎与 jQuery-3.6.1 兼容,但这些都没有解决 HttpPostedFileBase 的模型绑定问题......
不知何故,jquery-mobile 阻止 MVC 绑定发布的数据。我还可以通过 Fiddler 看到该元素被发布为 NULL。
在 MVC 模型中:
[Display(Name = "Certification Photo")]
public HttpPostedFileBase UploadedPhoto { get; set; }
在 Razor 视图中:
@Html.TextBoxFor(r => r.Sitter.Certifications[i].UploadedPhoto,
new {
type = "file",
data_certindex = i,
accept = "image/gif,image/png,image/jpeg,image/jpg,image/bmp",
style = "visibility: hidden; position:absolute;",
@class = "form-control"
}
)
当我选择一个文件时,我可以看到 的属性按预期填充,但是当发布表单时,Fiddler 显示 UploadedPhoto 提交为空,并在控制器中显示为 NULL。value=
UploadedPhoto
当我删除jquery-mobile脚本时,一切正常。
我暂时坚持使用jQuery-mobile。有谁知道是什么原因导致的,和/或如何解决这个问题?
更新:有没有办法在单个控件或整个窗体上禁用jquery-UI事件?我已经尝试过,但这似乎并没有完全禁用jQuery-UI事件。data-role=none
答: 暂无答案
评论