2009-08-31 4 views
6

일부 변수에 값을 저장하기 위해 asp.net mvc의 텍스트 상자 값을 검색하려면 어떻게해야합니까?클릭하면 asp.net mvc 텍스트 상자에서 값 가져 오기

색인보기 페이지에 <%=Html.TextBox("testbox") %>과 같은 텍스트 상자가 있습니다.

나는이 <input type="submit" />

같은 버튼을 나는 새 MVC 응용 프로그램을 열 때 제공되는 기본보기 페이지를 사용하고 있습니다.

감사합니다.

답변

8

컨트롤러에서;

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Search(FormCollection collection) 
{ 
    String g = collection["textFieldname"] 
} 

또는 사용할 수 있습니다.

TryUpdateModel(modelName); 

상기가 바람직합니다. TryUpdateModel에 대한 자세한 정보가 필요하면 의견을 게시하면됩니다.

편집 :

보다는 단순히 보여 나를 보자 설명; 컨트롤러에서

:보기에 그런

public class MyFormViewModel 
{ 
    public string myInput {get; set;} 
} 

public ActionResult Search() 
{ 
    MyFormViewModel fvm = new MyFormViewModel(); 
    return View(fvm); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Search(FormCollection collection) 
{ 
    MyFormViewModel fvm = new MyFormViewModel(); 
    TryUpdateModel<MyFormViewModel>(fvm); 

    string userInput = fvm.myInput; 
} 

;

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YOURNAMESPACE.Controllers.MyFormViewModel>" %> 

<%= Html.TextBox("myInput", Model.myInput) %> 

두 가지 사항에 유의하십시오.

페이지가 컨트롤러에 정의 된 모델/클래스에서 상속됩니다. 그것을위한 최고의 장소가 아니라 예제로서 그것을 할 것입니다.

다른 것은 텍스트 상자의 이름이 모델의 속성과 동일하다는 것입니다. 이 경우에는 myInput.

컨트롤러가 UpdateModel을 수행하면 해당 항목을 반향시키고 폼보기 모델 내의 필드 이름과 텍스트 상자 이름을 일치시킵니다.

의미가 있습니까?

편집이 또한의 버튼과 필드를 포장하는 것을 잊지 마세요

;

<% using (Html.BeginForm()) {%> 
+0

tryupdatemodel (modelname에)이보기에 텍스트 상자와 어떤 관계가 어떻게 안녕하세요, 감사합니다 회신에 대한 ... 제발 말해 않는이 ... – Josh

+0

감사합니다 그것을 통해 보았다 .... 나는 그것을 이해 ... .. 하지만 여기 ... <% = Html.TextBox ("myInput", Model.myInput) %>, Model.myInput은 자동으로 myFormViewModel.myinput에 매핑됩니까? 나는 그것이 당신이 그것이 관련된 클래스 이름을 가져옴으로써 리플렉션을 사용하여 자동적으로 해결된다고 지적한 것이라고 생각합니다. 약간의 방향으로 회전 시키십시오. 뷰에서 "Model.MyInput"이라고 부르기 때문에 ... 그러나 아마 코드를 작성할 것입니다. 작동 할거야. – Josh

+0

나는 그것이 어떤 모델인지를 어떻게 알았는지 ... 그리고 어디에서 ... 내가 생각한 것일까? – Josh

관련 문제