|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我觉得这个学习方法很重要。初学者应该跟我一样有同样一个毛病。那就是急于求成。很想就自己做出个小小的系统来。可真要动手,却又茫然而不知所措。为什么会这样呢?因为我们没有耐心去学习基础知识。写根本看不到什么效果的测试代码。好比,我们要在一个MVC页面中,完成多个中央图片上传。那末就会存在一个页面中有多个提交按钮的成绩。在网上也搜了良多谜底,都不太好使,最初仍是本人研讨出来了,把办理办法贴出来,但愿能给人人一些匡助。
aspx页面的代码以下:
<asp:ContentID="Content1"ContentPlaceHolderID="MainContent"runat="server">
<h2>
网站Logo办理</h2>
<table>
<tr>
<td>
申明:只能上传gif图片,网站不限制图片巨细,请上传符合巨细的图片,假如图片巨细过年夜,会形成网站变形等成绩。
</td>
</tr>
<tr>
<td>
Logo:<inputname="uploadpic"type="file"size="80"/>
<inputtype="submit"value="保留"name="action"/>
<divclass="red">
<%:Html.ValidationMessage("validationLogoError")%></div>
</td>
</tr>
</table>
<br/>
<br/>
<h2>
网站幻灯片办理</h2>
<table>
<tr>
<td>
申明:只能上传gif图片,保举巨细为1000pxX350px,假如原始图片不是该巨细,网站会主动将图片拉伸为该巨细,大概会形成图片变形等成绩。
</td>
</tr>
<tr>
<td>
幻灯片一:<inputname="uploadpic1"type="file"size="80"/>
<inputtype="submit"value="保留1"name="action"/>
<divclass="red">
<%:Html.ValidationMessage("validationLogoError1")%></div>
</td>
</tr>
<tr>
<td>
幻灯片二:<inputname="uploadpic2"type="file"size="80"/>
<inputtype="submit"value="保留2"name="action"/>
<divclass="red">
<%:Html.ValidationMessage("validationLogoError2")%></div>
</td>
</tr>
<tr>
<td>
幻灯片三:<inputname="uploadpic3"type="file"size="80"/>
<inputtype="submit"value="保留3"name="action"/>
<divclass="red">
<%:Html.ValidationMessage("validationLogoError3")%></div>
</td>
</tr>
<tr>
<td>
幻灯片四:<inputname="uploadpic4"type="file"size="80"/>
<inputtype="submit"value="保留4"name="action"/>
<divclass="red">
<%:Html.ValidationMessage("validationLogoError4")%></div>
</td>
</tr>
</table>
</asp:Content>
人人能够看到,我这个页面必要上传一个logo和四个幻灯片的图片,一共有五个提交按钮。注重,我这里每一个提交按钮的value是纷歧样的,而name都是"action",这是必需的,由于我们背景就靠这个来name来猎取到value的值,再依据value值来区分分歧的提交按钮。
action中的处置办法:
[HttpPost]
publicActionResultLogo(stringAction)
{
switch(Action)
{
case"保留":
{
if(Request.Files.Count!=0)
{
HttpPostedFileBasefile=Request.Files["uploadpic"];
stringExtension=Path.GetExtension(file.FileName);
stringnewFileName="logo"+Extension;
if(!Extension.Equals(".gif"))
{
ModelState.AddModelError("validationLogoError","只能上传gif范例图片");
}
else
{
file.SaveAs(Path.Combine(Server.MapPath("/Content/Logo/"),newFileName));
returnContent("<script>alert(保留乐成!);location.href=logo;</script>");
}
}
break;
}
case"保留1":
{
if(Request.Files.Count!=0)
{
HttpPostedFileBasefile=Request.Files["uploadpic1"];
stringExtension=Path.GetExtension(file.FileName);
stringnewFileName="1"+Extension;
if(!Extension.Equals(".gif"))
{
ModelState.AddModelError("validationLogoError1","只能上传gif范例图片");
}
else
{
file.SaveAs(Path.Combine(Server.MapPath("/Content/Logo/"),newFileName));
returnContent("<script>alert(保留乐成!);location.href=logo;</script>");
}
}
break;
}
case"保留2":
{
if(Request.Files.Count!=0)
{
HttpPostedFileBasefile=Request.Files["uploadpic2"];
stringExtension=Path.GetExtension(file.FileName);
stringnewFileName="2"+Extension;
if(!Extension.Equals(".gif"))
{
ModelState.AddModelError("validationLogoError2","只能上传gif范例图片");
}
else
{
file.SaveAs(Path.Combine(Server.MapPath("/Content/Logo/"),newFileName));
returnContent("<script>alert(保留乐成!);location.href=logo;</script>");
}
}
break;
}
case"保留3":
{
if(Request.Files.Count!=0)
{
HttpPostedFileBasefile=Request.Files["uploadpic3"];
stringExtension=Path.GetExtension(file.FileName);
stringnewFileName="3"+Extension;
if(!Extension.Equals(".gif"))
{
ModelState.AddModelError("validationLogoError3","只能上传gif范例图片");
}
else
{
file.SaveAs(Path.Combine(Server.MapPath("/Content/Logo/"),newFileName));
returnContent("<script>alert(保留乐成!);location.href=logo;</script>");
}
}
break;
}
case"保留4":
{
if(Request.Files.Count!=0)
{
HttpPostedFileBasefile=Request.Files["uploadpic4"];
stringExtension=Path.GetExtension(file.FileName);
stringnewFileName="4"+Extension;
if(!Extension.Equals(".gif"))
{
ModelState.AddModelError("validationLogoError4","只能上传gif范例图片");
}
else
{
file.SaveAs(Path.Combine(Server.MapPath("/Content/Logo/"),newFileName));
returnContent("<script>alert(保留乐成!);location.href=logo;</script>");
}
}
break;
}
}
returnView();
}
该办法只是让人人晓得怎样在一个MVC页面中完成多个提交按钮的思绪,代码并没有经由优化,人人在实践操纵中可将保留图片的办法提掏出来,以削减代码量。据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。 |
|