[英]In Entity Framework How To Extract Procedure Information In mvc asp.net
[英]asp.net mvc framework information propagation
我有一個ASP頁面,其中包含帶有兩個字段的表單,客戶應在其中寫入他/她的信息。
<td><%=Html.TextBox("Date")%></td>
<td><%=Html.TextBox("City")%></td>
我動作的簽名(目前)看起來像這樣:
public ActionResult XXX(string Date, string City) {...}
問題是我想從我的觀點傳播一個簡單的整數到行動。 是否可能有一個隱藏的文本框或類似的東西? 我希望我的動作簽名看起來像這樣:
public ActionResult CreateCourseDate(string Date, string City, int id)
有兩種方法可以做到這一點。 可以使用隱藏字段方法(我不建議這樣做),也可以將其添加到url(路由值)中。 后者更適合MVC首選的類似REST的URL。 因此,如果您使用的是新表格,則您的網址應如下所示:
http://example.com/course/newcoursedate/1
這將編輯ID為1
的course
。 您將有一個相應的create
動作,您的新表單將發布到該動作。 下面的示例假定您使用“ Course
模型對視圖進行了嚴格鍵入。 您也可以根據需要將ID從ViewData中拉出。
<% using (Html.BeginForm( "CreateCourseDate",
"Course",
new { id = ViewData.Model.CourseID }, ...
...
<td><%=Html.TextBox("Date")%></td>
<td><%=Html.TextBox("City")%></td>
<% } %>
我沒有查看參數的順序,但是我相信至少一個簽名在控制器名稱之后具有路由值。 請咨詢消息來源(或智商)以確保。
您可以像這樣傳遞其他值:
<% using (Html.BeginForm("YourActionName", "YourControllerName", new { id = yourid })) { %>
...
<td><%=Html.TextBox("Date")%></td>
<td><%=Html.TextBox("City")%></td>
...
<input type="submit" value="Submit" />
<% } %>
是的,為此可以使用隱藏的輸入。 顯然,它必須具有相同的形式。
使用Html.Hidden。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.