【发布时间】:2011-12-27 19:41:05
【问题描述】:
MVC 控制器动作 1:在视图页面上显示值。
MVC 控制器动作 2:由同一视图页面上的动作链接触发 - 将视图页面上显示的值(在动作 1 中计算的值)作为参数并运行自己的逻辑。
两者都是同一个控制器的一部分。现在我可以通过操作 1 成功显示值。现在用户点击执行动作 2 的动作链接。但我无法成功地将这些值传递回控制器动作 2。
控制器动作 1:
public ActionResult CalculationsONE()
{
var CalcModel = new CalcViewModel();
int var1 = //Value calculated here
int var2 = //Calculation
CalcModel.Var1= var1;
CalcModel.Var2= var2;
return View(CalcModel);
}
View : 上面的值显示在视图页面上.. 像这样。
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<CalcModel>" %>
<table>
<tr><td>First Value:</td><td><%=Model.Var1%></td></tr>
<tr><td>Second Value:</td><td><%=Model.Var2%></td></tr>
</table>
<%=Html.ActionLink("StringTitle", "Action2", "Controller", new { var1 = Model.Var1,
var2=Model.Var2})%>
现在当用户点击动作链接时,值应该被传递给控制器的动作 2。但那没有发生..请帮忙。
动作2代码:
public ActionResult Action2(int? var1, int? var2)
{
//Other logic/calculations.
}
var1 和 var2 从视图中获取空值..
【问题讨论】:
-
您尝试过低技术解决方案吗?
<a href="/Controller/Action2?var1=@Model.Var1&var2=@Model.Var2">StringTitle</a>? -
没有。我如何用非剃刀语法写这个?我会试试这个。
-
提供的 sn-p 就是一个例子。 =D
-
当然。我明白那个。我尝试使用相同的格式..但似乎无法正确使用语法..我使用的是 aspx 表示法而不是 razor。
-
哦,对不起,我的例子完全脑死了!应该是
<a href="/Controller/Action2?var1=<%= Model.Var1 %>&var2=<%= Model.Var2 %>">StringTitle</a>