2011-12-27 6 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)에 전달한다. 그러나 일어나지 않는 thats.. 제발 도와주세요.

액션 2 코드 : 뷰에서

public ActionResult Action2(int? var1, int? var2) 
    { 
     //Other logic/calculations. 
    } 

VAR1 및 VAR2 점점 널 ..

+1

시도하면 낮은 기술 솔루션을 봤어, 내가 믿는 잘못? 'StringTitle'? – Tejs

+0

그렇지 않습니다. 비 - 면도기 문법으로 이것을 어떻게 써야합니까? 나는 이것을 시도 할 것이다. – ZVenue

+0

제공된 스 니펫이 그 예입니다. = D – Tejs

답변

2

정말 좋은 또는 나쁜 관행이 아니다; HTML 헬퍼를 사용하면 정말 단순한 링크가 과도하다는 것을 쉽게 알 수 있습니다. 상황에 따라서는 익명 객체의 값을 URL이 아닌 링크의 속성으로 연결하는 결과를 얻었을 가능성이 높습니다.

0

귀하의 이름 지정 규칙은

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