mvc下是如何傳值的

2021-05-24 12:46:39 字數 4090 閱讀 2547

最近在開發乙個專案,用的是

mvc框架,現將

mvc會用到的常用傳值方法總結如下:

在講傳遞引數方法之前,先簡單介紹一下mvc

路由及執行機制。

首先,web 瀏覽器向伺服器傳送一條url 請求,如http://hostname/controllername/actionname/parameters

。其次,請求被asp. net mvc 的路由對映系統獲取, 並按照對映規則, 解析出controllername,actionname 和parameters;

再次,到controllers 目錄下找到controllernamecontroller.cs 類, 並在這個類中找到與actionname 同名的方法,將parameters 作為引數傳給這個方法;

最後,action 方法開始執行,完成後將返回相應檢視

以下是四種傳值方式,根據不同情況下具體運用

1.

request

1.

request.form:獲取以post方式提交的資料(接收form提交來的資料)

view檢視下:post方式提交資料

<% html.beginform("

logonmothed

", "

user

", formmethod.post); %> 或

<

form

id="login"

action

="/user/logonmothed"

method

="post">

控制器下:

request.form[「」].tostring();

2.

request.querystring:獲取位址列引數(以及以get方式提交的資料)

.aspx

頁面**

$(document).ready(function ()

.js檔案**

.controller檔案中呼叫

然後再resourcebasecontroller.cs

下的getjosnresourcebaselist

方法下querystring

獲取引數:

request.

querystring[「param1」];

request.

querystring[「param2」];

request.

querystring[「param3」];

2.dictionary

在控制器賦值:

dictionary

usermodel = new

dictionary

();usermodel.add("userid", 「123」);

usermodel.add("username", 「456」);

viewdata["userdata"] = usermodel;

在檢視頁面取值:

<%

dictionary

usermodel = viewdata["userdata"] as

dictionary

; %>

<%

=html.textbox("txtusername", usermodel["username"].tostring())%>

接下來講兩種強型別資料的傳遞方法,

viewdta和 dynamic

說明:﹡

resourcebaseeditmodelservice

.geteditmodelbyid

返回型別為

resourcebaseeditmodel ﹡

resourcebaseeditmodel

是乙個資料實體型別如:

public

class

resourcebaseeditmodel }

3.

viewdata

把強型別的

viewdata

物件從控制器傳遞給檢視

,這裡只講強型別物件的傳遞

在控制器中賦值:

viewdata["editmodel"] = resourcebaseeditmodelservice.geteditmodelbyid(tempdeviceid.value)

在檢視頁面取值:

<%resourcebaseeditmodellocalmodel = viewdata["local"] as

resourcebaseeditmodel; %>

<%=html.textbox("txtdeviceid",

localmodel.id%>

4. dynamic

在控制器賦值:

resourcebaseeditmodel

model =resourcebaseeditmodelservice.geteditmodelbyid(tempdeviceid.value);

dynamic viewmodel = new

expandoobject();

viewmodel.userid = model.id;

viewmodel.username = model.name;

return view(viewmodel);

在檢視頁面取值:

<%

@page

language

="c#"

inherits

="system.web.mvc.viewpage"

%>

<%

=html.textbox("txtusername", (string)model.name)%>

<%

=html.textbox("txtuserid", (string)model.id)%>

MVC幾種傳值方式

一,model public class course public string name public class teacher public string name public listcourses public class student public string name publ...

mvc4的傳值方式

mvc路由執行機制 傳送一條url 請求,如http hostname controllername actionname parameters。其次,請求被asp.net mvc 的路由對映系統獲取,並按照對映規則,解析出 controllername,actionname 和parameters...

iOS如何實現傳值 協議傳值

b a 傳值 步驟 1.寫協議 2.新增 屬性 3.呼叫 人 方法 4.給 人新增協議 5.設定 人 6.實現協議方法 例子 secondviewcontroller.h secondviewcontroller.h 協議傳值 created by 薩斯輩的呼喚 on 14 6 13.import ...