小女巫 发表于 2015-1-16 14:22:22

来一篇关于NET的怎样在一个MVC页面中完成多个提交按钮

我觉得这个学习方法很重要。初学者应该跟我一样有同样一个毛病。那就是急于求成。很想就自己做出个小小的系统来。可真要动手,却又茫然而不知所措。为什么会这样呢?因为我们没有耐心去学习基础知识。写根本看不到什么效果的测试代码。好比,我们要在一个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中的处置办法:

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++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。

再现理想 发表于 2015-1-18 13:38:58

那么,ASP.Net有哪些改进呢?

仓酷云 发表于 2015-1-26 21:55:12

asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源

爱飞 发表于 2015-2-4 22:30:18

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

再见西城 发表于 2015-2-10 22:09:41

Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。

活着的死人 发表于 2015-3-1 17:03:56

可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。

小妖女 发表于 2015-3-10 21:38:32

业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

小魔女 发表于 2015-3-17 11:21:35

ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。

只想知道 发表于 2015-3-24 09:48:46

ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
页: [1]
查看完整版本: 来一篇关于NET的怎样在一个MVC页面中完成多个提交按钮