2011-07-26 6 views
0

textarea으로 간단한 mvc 웹 페이지를 만들었습니다. 서버에 데이터를 제출 한 다음 뷰를 새로 고침해야합니다. 그러나 textarea에는 항상 브라우저 데이터가 포함되어 있지만 내 모델이 변경되었습니다.MVC 렌더링 데이터 문제

디버그 나를 보여줍니다

Html.TextArea("EmailBody", Model != null ? Model.EmailBody : "Message") 
{<textarea cols="20" id="EmailBody" name="EmailBody" rows="2"> Message</textarea>} System.Web.Mvc.MvcHtmlString {System.Web.Mvc.{Dynamic}.DynamicMvcHtmlString} 

그러나 동시에

Model != null ? Model.EmailBody : "Message" "123" string 

페이지에 렌더링하는 것은 (실제 데이터가 123입니다,하지만 난 텍스트 영역에 입력 된 데이터를 얻을 수) 실제 데이터와 다른 즉

. 제발, 조언.

문제

<textarea id="EmailBody" name="EmailBody"><%= Model.EmailBody %></textarea> 

덕분에 많은 해결.

답변

2

나는

@Html.TextAreaFor(model => model.EmailBody, ..... 

내 컨트롤러에서 사용합니다 :

public ActionResult Index() 
{ 
    var viewModel = new MyViewModel(); 

    viewmodel.EmailBody = "Default"; 

    return this.View(viewModel); 
} 

[HttpPost] 
public ActionResult Index(MyViewModel inputViewModel) 
{ 
    string body = inputViewModel.EmailBody // Whatever.... 
} 

중요한 점,보기에 NULL의 뷰 모델을 통과 귀찮게 그것을 작동하는 몇 가지 기본 데이터를 제공하지 않는 것입니다 . 그렇게하면 TextBoxFor() 또는 TextAreaFor()와 같은 HTML 도우미를 사용하여 렌더링 할 수 있습니다.