2013-01-23 2 views
2

문자열에 바인딩하는 ASP.NET Razor보기가 있습니다. 그것의 아주 간단한 :문자열 모델, 컨트롤러에 값 전달

@model string 
@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

Hello, @Model 

@using(Html.BeginForm()) 
{ 
    <fieldset> 
     <label for="name" style="color: whitesmoke">Name:</label>  
     <input type="text" id="name"/> 
     <br/> 
     <input type="submit" value="Submit"/> 
    </fieldset> 
} 

그리고 간단한 컨트롤러 :

[HttpGet] 
public ActionResult Index() 
{ 
    object model = "foo"; 
    return View(model); 
} 

private string name; 
[HttpPost] 
public ActionResult Index(string name) 
{ 
    return View(); 
} 

내가 제출 버튼, 색인 사후 조치 결과 트리거를 밀어

,하지만 '캐릭터 이름'매개 변수가 null입니다. 면도기는 입력 ID가 컨트롤러의 매개 변수 이름과 일치하기 때문에보기에서이 속성을 내 컨트롤러에 자동으로 바인딩 할만큼 스마트하지 않습니까? 그렇지 않다면 어떻게 바인딩합니까? 나는 Html.HiddenFor (m => m.Foo)를 사용할 수있는 속성을 가진 모델을 알고 있습니다. 그러나 속성이 없으므로이 메서드를 제대로 호출하는 방법을 알지 못합니다. Html.Hidden을 올바르게 호출하도록 설정할 수 있습니다. ("name", "foo")하지만 여기에 값을 전달하는 방법을 모르겠습니다. 나는 같은 JQuery와 통화를 사용할 수 있습니다 알고 : 이것은 문자 값으로 컨트롤러에 JQuery와 문자열을 전송

@Html.Hidden("name", "$('input[id=name]').val())"); 

... 나는이 시점에서 어떻게 해야할지 모르겠어요. 감사!

답변

2

당신의 입력 작업 매개 변수와 일치하는 이름 부여, 속성을 결합 똑똑 :

<input type="text" id="name" name="name" /> 
+0

오 와우 ... 감사합니다! 그때 Html.Hidden() 물건을 사용할 때의 요점은 무엇입니까? 주로 비 POD 데이터 유형을위한 것입니까, 아니면 여기에 어떤 점이 있습니까? – dferraro

+0

@dferraro, 나는'Html.Hidden()'뿐만 아니라 html 헬퍼를 의미한다. HTML을 생성하고 결과를 문자열로 반환하여 HTML 컨트롤을 만드는 데 도움이됩니다. html 헬퍼의 모든 이점을 정말로 알고 싶다면 새로운 질문을하는 것이 좋습니다. – Zabavsky

관련 문제