2016-06-15 2 views
0

WebMatrix를 사용하여 웹 사이트를 구축 중입니다. 사용자가 기본 페이지에 이름을 입력하고 리디렉션 한 후 다른 이름의 결과에 이름이 표시되기를 바랍니다. 하지만 내 코드가 작동하지 않습니다. PageData가 WebMatrix에서 데이터를 전달하지 못함

은 메인 페이지의 코드 조각입니다 :

@{ 
    if (IsPost) { 
     PageData["fullname"] = String.Format("{0} {1}", Request.Form["mainForename"], Request.Form["mainSurname"]); 
     PageData["redir"] = Request.Form["goTo"]; 
    } 
} 

<form name="mainForm" id="mainForm" method="post" action="foo.cshtml" onsubmit="return mainValid(this);"> 
    <h2>Please enter your name:</h2> 
    <label for="mainForename" class="label">Forename:</label> 
    <input type="text" name="mainForename" id="mainForename"> 
    <label for="mainSurname" class="label">Surname:</label> 
    <input type="text" name="mainSurname" id="mainSurname"> 
    <input type="submit" name="goTo" value="Go to Form 1"> 
    <input type="submit" name="goTo" value="Go to Form 2"> 
</form> 

이 메인 페이지의 지시 페이지의 조각입니다에 : 나는 mainForm에 제출 한 어떤 값

@{ 
    if (IsPost) { 
     var display = PageData["fullname"]; 
    } 
} 

<form name="form1" id="form1" method="post" onsubmit="return Valid(this);"> 
    <!-- some HTML code --> 
    <input type="submit" name="submit" value="Get results"> 
    <p>@Html.Raw(display)</p> 
</form> 

그러나 , PageData["fullname"]PageData["redir"]에는 값이없는 것으로 보입니다. 문제가 무엇입니까?

도움을 주시면 감사하겠습니다.

답변

1

처럼 어떻게 든 보일 것입니다.

대신 PageData를 사용하는 Session 개체를 사용해보십시오. 세션은 해당 사용자의 모든 페이지에서 사용할 수 있습니다.

그래서 당신은 PageData이 곳 [ "전체 이름"] 당신의 조언을 http://www.mikesdotnetting.com/article/192/transferring-data-between-asp-net-web-pages

+0

도움 주셔서 감사합니다. 그러나 나는 그것들을 모두 대체 한 후에도 여전히 동일하다. – user7065687

+0

이것이 올바른 해결책입니다. 내가 잘못된 페이지에 코드를 작성했다는 것을 알게된다. (나는 바보 같다.) 감사. – user7065687

0

나는 코드에서 매우 좋지 않아 뭔가를 찾을 : 양식 조치가 cshtml 파일에 설정되어있는 이유는

  1. ? 그것은 통제자의 행동이어야합니다.
  2. 왜 "하드 코드 된"양식 태그를 사용하고 있습니까? @using(@Html.BeginForm('name', 'action', 'controller'...)
  3. 왜 WebMatrix가 필요합니까? 첫째 - 그 꽤 오래된 것, 그리드를위한 것 - 양식이 있습니다.

@Html.BeginForm 안에 모델을 사용하고 @Html.TextBoxFor(x=>x.UserName)을 사용하십시오. 그런 다음 게시중인 작업에 양식을 게시하여 두 번째 양식이 포함 된 다른 페이지로 리디렉션하고 모델을 보유하십시오. post 조치는 내가 한 페이지에 하위 페이지를 결합 할 때 PageData가 유용하다고 생각이

[HttpPost] 
public ActionResult RedirectToAnotherForm(MyModel model) 
{ 
return View('SecondFormView', new SecondFormModel{ 
userName = model.name 
}) 
} 
+0

감사를 참조 세션 [ "전체 이름"] 자세한 내용은

를 사용합니다. 나는 웹 디자인에 익숙하지 않고 책의 예를 다룰 것이다. 어쩌면이 책은 구식일지도 모른다. – user7065687

+0

@Weltenrand "Professional ASP.NET MVC 5"를 사용해보십시오. 제목에서 "Professional"에 대해 두려워하지 마십시오. 시작하기는 꽤 쉽습니다. it-book에서 검색하십시오.) – Alex

+0

이미 다운로드되었습니다. 고맙습니다! – user7065687

관련 문제