簡體   English   中英

ASP.NET MVC框架信息傳播

[英]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為1course 您將有一個相應的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM