表单的提交

对于表单的提交:

用惯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;
        }
    }
}
然后在控制层controller里新建对应的HomeController

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);
        }
    }
}

 

这样一个非常简单的表单提交做成了。

posted @ 2010-09-17 11:35  二锅头  阅读(251)  评论(0)    收藏  举报