我有这张桌子
<% using(Html.BeginForm("ViewTwo","Order"))
{ %>
<table id="Products" class="Products">
<tr>
<th>ProductId</th>
<th>Productname</th>
<th>Quantity</th>
<th>UnitPrice</th>
</tr>
<% for(int i=0; i < Model.NorthOrderDetails.Count; i++)
{
%>
<tr>
<td><%: Html.Label(Model.NorthOrderDetails[i].ProductID.ToString()) %></td>
<td><%: Html.Label(Model.NorthOrderDetails[i].ProductName) %> </td>
<td><%: Html.TextBoxFor(m => m.NorthOrderDetails[i].Quantity) %></td>
<td><%: Html.TextBoxFor(m => m.NorthOrderDetails[i].UnitPrice) %></td>
<td>
<%: @Html.ActionLink("Go", "ViewTwo", "Order", new { firstval = Model.NorthOrderDetails[i].ProductID.ToString()}, null)%>
</td></a></td>
<td> <input type="submit"> </td> </tr>
<% } %>
</table>
<% } %>
按下ActionLink后,如何从模型到控制器获取值?
答案 0 :(得分:0)
我希望我能帮到你。您想要在Html.ActionLink(..)
(请参阅MSDN)来电中访问设置为RouteValues的值吗?如果我是对的 - 这可以解释一下。
我设置了一个 HomeController
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult SampleAction(int sampleValue)
{
Debug.WriteLine("SampleAction");
Debug.WriteLine("\tsampleValue: " + sampleValue);
return View("Index");
}
}
之后我创建了一个相应的索引视图
@{
ViewBag.Title = "Index";
}
<h2>Home</h2>
<!-- routeValues, HtmlAttributes -->
@Html.ActionLink("Click Me", "SampleAction", "Home",new { sampleValue = 1}, null)
Html页面
如您所见,我将sampleValue
参数设置为我的routeValues。在我的控制器中,我可以访问此值,因为它自动匹配我的SampleAction 中的 sampleValue参数。
我打印出来用于演示目的。如果我误解了你 - 请告诉我。有关路由的更多详细信息,可以使用多篇文章(例如,请参阅Routing Basics)
根据详细信息进行更新
如果要将特定数据添加到发送回服务器的模型,可以将附加数据添加到表单的routeValues。 (请参阅下面的演示代码 - 必须进行修改才能达到您的目的!)
<!-- only one submit button -->
@using (Html.BeginForm("actionName", "controllerName", new { sampleValue = 1 }, FormMethod.Post))
{
for (int i = 0; i < 10; i++)
{
@Html.TextBoxFor(x => x.NorthOrderDetails[i].UnitPrice)
}
<input type="submit" />
}
<!-- each row is one form -->
@for (int i = 0; i < 10; i++)
{
using (Html.BeginForm("actionName", "controllerName", new { sampleValue = 1 }, FormMethod.Post))
{
@Html.TextBoxFor(x => x.NorthOrderDetails[i].UnitPrice)
<input type="submit" />
}
}
如果您想将提交按钮的格式设置为链接,可以查看this corresponding SO question。