最近在開發乙個專案,用的是
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 ...