2012-08-02 4 views
1

컨트롤러의 객체에 저장하고있는 값을 인쇄하고 싶습니다. 나는 대답을 찾으려고했지만 적절한 답을 찾지 못했습니다. 제발 도와주세요제어 값을 인쇄하는 방법 - MVC3

//my code in control 

public ActionResult PrintOutput() 
     { 
       ModalClass myObject = new ModalClass    
       myObject.load(str); 
       ViewBag.myOject = myOject.ToString(); 
       return View("PositionPrint"); 
     } 




    //In view page I have created a **PartialView**. Inside partial view I 
    // have given below code alone 


     @Html.Raw(@ViewBag.myOject) 

답변

2

변수 이름으로 개체를 사용할 수 없습니다 - 그것은 언어의 키워드입니다. 컨트롤러는 일반적으로 뷰 백 또는 사용자 지정 모델의 데이터로 채워진보기를 반환하여 값을 "인쇄합니다". 원시 html 문자열을 인쇄하기 만하면됩니다 - @Html.Raw(myObject)

컨트롤러 작업에서 터프함,보기가 액세스 할 수 있도록 값을 어딘가에 두어야합니다. 예를 들어 :

public ActionResult PrintOutput(sting str) 
{ 
    Modalclass myObject = new Modalclass(); 
    myObject.load(str); 

    ViewBag.myObject = myObject; //probably at least ToString() call is due here 
    return View(); 
} 

그리고 뷰 사용 @Html.Raw(@ViewBag.myObject)

그 안에 무엇을 인쇄합니다.

P. 하지만 실제로는 전체 객체의 내용을 인쇄해서는 안됩니다. 그것은 다소 의미없는 행동입니다. (디버깅을 제외하고) 구체적이어야합니다. 개체의 각 데이터 속성은 뷰의 특정 ui 요소에 인쇄되어야합니다.

+0

답장 보내 주셔서 감사합니다. [ViewBag._ObjectPM = _ObjectPM;] 위에서 언급 한 코드를 반환했습니다. [View ("PositionPrint", _ObjectPM);] 및 부분 뷰 페이지 [@ Html.Raw (@ ViewBag._Object)]를 반환합니다. 불운. 나는 뭔가를 놓치고 있다고 느낍니다. – Muthukumar

+0

물건에 무엇이 들어 있습니까? Modalclass의 소스는 무엇입니까? 질문 본문에 문제와 관련하여 더 많은 코드를 제공하므로 인 버 스티 지 소재 = –

+0

내 전체 코드가 업데이트되었습니다. 요청할 때. 도와주세요. – Muthukumar

0

가능한 경우 Dynamic Magic Variable (ViewBagViewData)을 피하십시오. 이 Magic 변수는 코드를 추악하게 만듭니다. 항상 강한 유형을 사용해보십시오.

귀하의 의견에 ViewModel이 있으십니까? 예 : 고객에 대한 세부 정보를 인쇄하려는 경우. 당신은 당신의 컨트롤러 액션에서 지금이

public class CustomerPrint 
{ 
    public string FirstName { set;get;} 
    public string JobTitle { set;get;} 
} 

처럼 그것을 위해 (그냥 POCO 임) 뷰 모델을 만들어이 값을 설정하고보기에 그것을 전달할 수 있습니다.

public ActionResult PrintOutput() 
{ 
    var customerPrintVM=new CustomerPrint(); 
    customerPrintVM.FirstName="Jon"; 
    customerPrintVM.JobTitle="Developer"; 
    return View(customerPrintVM); 
} 

CustomerPrint 클래스의 개체를 전달할 것이므로이보기에는이 클래스에 강력한 형식을 지정해야합니다. 이렇게 당신의 전망을 바꾸십시오.

@model CustomerPrint 

<h2>This is your view content</h2> 
<p>@Model.FirstName</p> 
<p>@Model.JobTitle</p> 
@Html.Raw(Model.FirstName) 

당신의 ViewModel 클래스 네임 스페이스에있는 경우,이

@model YourNameSpaceName.CustomerPrint 

당신은이 형식으로 모델의 속성에 액세스 할 수 있습니다 추천하기 추천 최초의 클래스에 fullpath에 제공해야 할 수도 있습니다 Model.PropertyName (예 : Model.FirstName) 면도면, 표현식이 아직 코드 블록 안에 있지 않으면 @을 사용해야합니다.

관련 문제