在控制器中的两个操作之间传递值

时间:2011-12-27 19:41:06

标签: asp.net-mvc controller

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);
}

查看:上面的值显示在视图页面上..就像这样。

<%@ 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从视图中获取空值。

2 个答案:

答案 0 :(得分:2)

这不是一个好的或坏的做法;我只是发现使用HTML帮助程序非常简单的链接是过度的。在您的情况下,您可能最终将这些值作为链接上的属性而不是网址中的属性附加到匿名对象中。

答案 1 :(得分:0)

我认为您的命名惯例是错误的,请尝试

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<CalcView>" %>