2009-06-24 4 views
1

ASP.Net MVC에서 정말 이상한 문제가 있습니다.Asp.Net MVC - 이상한 양식/컨트롤러 문제

3 개의 텍스트 값을 create user라는 작업 메서드에 게시하는 양식이 있습니다 (간단히하기 위해 다음과 같습니다).

public ActionResult CreateUser(string FirstName, string LastName, string Email) 
    { 
     var s = FirstName + LastName + Email; 

     return RedirectToAction("Index"); 
    } 

말 또한 내 양식 내 액션 메소드에서 이제

<% using (Html.BeginForm("CreateUser", "User")) 
    { %> 

    <%=Html.TextBox(("FirstName")) %> 
    <%=Html.TextBox(("LastName")) %> 
    <%=Html.TextBox(("Email")) %> 

    <div><input type="submit" value="Submit" /></div> 

<% } %> 

이며, 사용자의 컨트롤러에 값 이름, 성 및 이메일 모두 널 (null)입니다!

그러나 다른 컨트롤러 (게임)에 동일한 메서드를 복사하고 거기에 게시 할 양식을 업데이트하면 메서드의 값이 null이 아닙니다! 나는 이것으로 완전히 곤란하다.

두 컨트롤러는 동일합니다 - 그들은 같은 기본 클래스를 상속 동일한 속성 등 그

편집에 적용이 : 작업 알았어요 (기본 문제가 무엇인지 확실하지)를.

사용자 컨트롤러의 내 인덱스 메서드에 대한 사용자 지정 특성이 있습니다 (기본적으로 HttpContext.Current.User.Identity.Name 속성을 구문 분석하고이를 메서드에 자동으로 전달 함). 어떤 이유로, Index 메소드에서 문제가되는데 일단 제거하면 모든 것이 의도 한대로 작동하기 시작했습니다!

public Action Index() {...} 
+0

이상한. 방화 광에서 게시물 값을 검사 해 보았습니까? – Damien

답변

0

CreateUser 내부에 중단 점을 추가 한으로 Request.Form (또는 QueryString을)의 내용을 살펴 시도하거나

[Authorisation] 
public Action Index(string userName){...} 

이후 :

전에 내 색인 방법이었다 ValueProvider. 키가 다를 수 있습니다.

+0

User의 ValueProvider에는 각각 "Users", "Index"및 ""값이있는 3 개의 값 (controller, action, id)이 있습니다 ("Users", "CreateUser" 액션. 게임 컨트롤러에 게시하기 위해 전환 할 때 값이 "Jamie", "Game", "Game"인 ValueProvider ("FirstName", "controller", "action"및 "id" CreateUser "및" "), 예상대로 작동합니다. 단순히 컨트롤러를 변경하여 ValueProvider가 다른 이유를 알 수 없습니까? 나는 사용자에서 사용자로 컨트롤러 이름 바꾸기를 시도했지만 결과는 동일합니다 .... – Jamie

1

사물의 소리 (게시자가 컨트롤러를 변경할 때 작동 함)에 따라 'User'라는 단어가 특정 유형의 예약어가 될 수 있습니다.

사용자가 asp.net 프레임 워크에서 현재 IPrincipal 개체를 참조하는 데 사용됩니다.

그래, 컨트롤러 이름을 다른 것으로 변경하십시오.

HTHs, 찰스