大家好,我正在尝试上传一个简单的图像,但 HttpPostedFileBase 始终保持为空。这是我的代码,我不知道我做错了什么。
这是我在设计视图中的代码:
<fieldset>
<legend>PictureModel</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.PrivacyTypeID) %>
</div>
<div class="editor-field">
<%: Html.DropDownList("PrivacyTypeID", null, new { name = "PrivacyTypeID", title = "Please select privacy type.", id = "PrivacyTypeID" }) %>
<%: Html.ValidationMessageFor(model => model.PrivacyTypeID) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.File1) %>
</div>
<div class="editor-field">
**<input type="file" name="File1" />**
<%: Html.ValidationMessageFor(model => model.File1) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Description) %>
</div>
这是我的控制器中的代码:
public ActionResult AddPicture(Guid id, PictureModel 模型, HttpPostedFileBase File1)
{
尝试
{
if (ModelState.IsValid)
{
try
{
Guid albumid = id;
if (File1 != null)
{
var physicalPath = Path.Combine(Server.MapPath("~/Gallery"), System.IO.Path.GetFileName(File1.FileName));
File1.SaveAs(physicalPath);
PicturesBL pictures = new PicturesBL();
谁能告诉我有什么问题吗?
谁能告诉我有什么问题吗?
您所显示的代码没有任何问题。我怀疑问题来自于您使用 AJAX 调用而不是正常提交来提交此表单。但如您所知,您无法使用 AJAX 上传文件。这就是你的代码不起作用的原因。如果你想使用 AJAX 上传文件,你可以使用一些客户端插件,例如Uploadify or Fine uploader。这也可以使用新的 HTML5 原生完成File API。当然,这仅适用于支持它的现代浏览器。如果您需要支持旧版浏览器,一些可用的客户端上传插件可能会帮助您。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)