2011-12-27 122 views
0

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越来越空..

+1

您是否尝试过在技术含量较低的解决方案? 'StringTitle'? – Tejs 2011-12-27 19:45:07

+0

没有。我如何使用非剃刀语法编写此代码?我会试试这个。 – ZVenue 2011-12-27 19:53:01

+0

提供的片段就是一个例子。 = D – Tejs 2011-12-27 19:54:34

回答

2

这不是一个真正的好或不好的做法;我只是发现使用HTML Helpers进行真正简单的链接太过于夸张。在你的情况下,你可能最终会将这些匿名对象中的值作为链接上的属性而不是url。

0

你的命名规则是错的,我相信,尝试

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