1. 程式人生 > >MVC 從後臺頁面 取前臺頁面傳遞過來的值的幾種取法

MVC 從後臺頁面 取前臺頁面傳遞過來的值的幾種取法

<1>前臺頁面 Index檢視

注意:使用者名錶單的name值為txtName

           密碼錶單的name值為txtPassword

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Test</title>
</head>
<body>
    <form action="/Home/Test" method="post">
        <div>
            <label>使用者名稱</label><input type="text" name="txtName" />
            <label>密 碼</label><input type="text" name="txtPassword" />
        </div>
        <input type="submit" value="提交" />
    </form>
</body>
</html>

<2>後臺頁面,Home控制器

(為了測試,分別將檢視頁中的from表單的action設為 action="/Home/Test" ,action="/Home/Test2" action="/Home/Test3" action="/Home/Test4" )

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }


        // MVC第一種取值方式

        public ActionResult Test()
        {
            string userName = Request["txtName"];   //此時Request["txtName"]=ABC
            string password = Request["password"];  //此時Request["password"]=123

            return Content("OK" + userName + password);
        }

        // 第二種取值方式

        public ActionResult Test2(FormCollection f) //FormCollection是MVC中表單裡的一個集合,它也可以來接收前臺提交過來的表單,前臺提交過來的表單全都封裝到這個物件中來了
        {
            string userName = f["txtName"];     //此時f["txtName"]=ABC 
            string password = f["txtPassword"]; //此時f["txtPassword"]=123

            return Content("OK" + userName + password);
        }

        // 第三種取值方式

        public ActionResult Test3(string txtName, string txtPassword) //注意這個引數的名稱必須要與前臺頁面控制元件的 name值是一致的
        {
            return Content("OK" + txtName + txtPassword);

            //此時textName=ABC 
            //此時txtPassword=123
        }


        // 第四種取值方式,通過類物件接收

        public ActionResult Test4(ParaClass p) //如果ParaClass類裡面的屬性與前臺頁面控制元件的name值一致,那麼它的物件屬性也會自動被賦值
        {
            return Content("OK" + p.txtName + p.txtPassword);

            //此時p.txtName=ABC
            //此時p.txtPassword=123
        }


        public class ParaClass
        {
            public string txtName { get; set; } //此時textName=ABC
            public string txtPassword { get; set; } //此時txtPassword=123

            //注意:ParaClass類的屬性名稱必須要與前端頁面控制元件的name值一致,這樣才能接收到前端頁面傳遞過來的值
        }
      
    }
}