MVC3学习笔记(二)
一、输入框样式控制
在录入编辑界面,常用的方式如下:
@Html.EditorFor(model => model.PrivideTime)
但是这样就不能控制输入框属性。需要控制属性时就必须:
@Html.TextBox("PrivideTime", Model.PrivideTime.Value.ToShortDateString(), new { disabled = "disabled", @readonly = "readonly" })
其中也给出了以短日期格式显示的方法。
二、图片上传
上传图片可以采用如下方式:
@using (Html.BeginForm("About", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<p>
<input name="file" type="file" id="file1" /><input type="submit" value="上传图片" />
</p>
}
红色字体是要注意的地方,必须要有。
这里还有一个问题:同一个页面中,原本有一个保存按钮,现在又有了一个上传图片按钮,两个都是submit,在Controller中是如何区分呢?
通过
Request.Files.Count == 0
或者
var file = Request.Files[0];
if (file.ContentLength == 0)
这样是不能区分出来的。在没有选中文件就点“上传图片”或者点“保存”,上面的两个判断结果是一样的。
我当时采用了一个并不是很好的方法:
去掉“上传图片”按钮,选择了文件之后立即触发submit,这样就避免了没有选中文件就点“上传图片”这种情况。
<input name="file" type="file" id="file1" onchange="this.form.submit()" />
到了后期之后,发现其实 有更好的办法,用一个hidden存放标志,controller中获取该标志,根据值的不同进行区分。具体方法我在后面解决打印时会讲。

浙公网安备 33010602011771号