表单的提交
对于表单的提交:
用惯WebForm的可能会忘掉了传统的表单提交方式,jsp,asp,php都是这样。MVC是返璞归真了。
用到的Model
首先:我们首先在view层新建试图,命名为login
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>login</title>
</head>
<body>
<div>
<%using (Html.BeginForm("chklogin", "Home"))
{%>
<ul>
<li>用户登陆</li>
<li><input type="text" name="username" id="username" />
</li>
<li><input type="text" name="password" id="password" />
</li>
<li><input type="submit" name="sub" id="sub" value="登陆" onclick="return sub_onclick()" /></li>
</ul>
<%} %>
</div>
</body>
</html>
然后在model层新建实体user
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace NerdDinnerTest.Models
{
[Serializable]
public class User
{
public string userName
{
get;
set;
}
public string password
{
get;
set;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Text;
namespace NerdDinnerTest.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
return View();
}
public ActionResult login()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult chklogin(FormCollection form)
{
NerdDinnerTest.Models.User user = new Models.User();
user.userName = form["username"];
user.password = form["password"];
if (checkuser(user))
{
Session["user"] = user;
return RedirectToAction("Main", "User");
}
else
return RedirectToAction("login");
}
bool checkuser(Models.User user)
{
if (string.IsNullOrEmpty(user.password) || string.IsNullOrEmpty(user.password))
{
return false;
}
else
{
return (user.userName.ToLower() == "admin" && user.password.ToLower() == "admin");
}
}
}
}
忘了,要在global里设置router
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace NerdDinnerTest
{
// 注意: 有关启用 IIS6 或 IIS7 经典模式的说明,
// 请访问 http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"",
new { controller = "Home", action = "Index" }
);
routes.MapRoute(
"Default1",
"{action}.htm",
new { controller="Home",action="Index"}
);
routes.MapRoute(
"User",
"User/{action}.htm",
new { controller = "User", action = "Main" }
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
}
这样一个非常简单的表单提交做成了。

浙公网安备 33010602011771号