다른 기능 중 사용자에게 '문의하기'페이지를 제공하는 작은 샘플 웹 사이트를 구축하여 ASP.Net MVC2를 시험해보고 있습니다. 아이디어는 사용자가 자신의 이름, 전자 메일 주소, 메시지 제목 및 메시지를 입력 할 수있게하는 것입니다. 메시지를 보내려면 사용자가 ActionLink를 클릭하십시오. 이것은이다 :보기에서 텍스트 상자의 매개 변수를 ASP.Net의 컨트롤러로 전달 MVC2
<% Html.BeginForm(); %>
<div>
<%: Html.Label("Name")%>
<br />
<%: Html.TextBox("txtName", "",new { style = "width:100%" })%>
<br />
<%: Html.Label("Email address")%>
<br />
<%: Html.TextBox("txtEmail", "", new { style = "width:100%" })%>
<br />
<%: Html.Label("Subject")%>
<br />
<%: Html.TextBox("txtSubject", "", new { style = "width:100%" })%>
<br />
<%: Html.Label("Message")%>
<br />
<%: Html.TextBox("txtMessage", "", new { style = "width:100%" })%>
</div>
<div style='text-align: right;'>
<%:
Html.ActionLink("Send", "SentEmail", new { name = Html.g, sender = "txtEmail", subject = "txtSubject", message="txtMessage" })
%>
</div>
<% Html.EndForm(); %>
ActionLink 컨트롤러의 방법은 사용자 이름, 이메일 주소, 제목 및 메시지가 전달됩니다되는 호출을 클릭하고 나면 생각입니다. 내가 링크를 클릭하면
public ActionResult SentEmail(string name, string sender, string subject, string message)
{
//Send email here and then display message contents to user.
ViewData["Name"] = name;
ViewData["Message"] = message;
ViewData["ThankyouMessage"] = "Thank you for contacting us. We will be in touch as soon as possible.";
return View();
}
그러나 ... 메소드로 전달되는 값이 null 인 :이 컨트롤러의 방법입니다. 이 작업을 수행하는 경로를 만들려고했지만 작동하지 않습니다. 다른 방법을 사용해야합니까?
는모리스
폼 데이터에 액세스하는 방법에 대해 언급해야합니다. 폼 데이터에 강력하게 형식화 된 컨테이너 역할을하는 클래스를 만들 수 있습니다. 이러한 뷰 모델은 장기적으로 가장 좋은 방법입니다. 그리고 모델 바인딩은 mvc에서 매우 강력합니다. – Mark
도움 마크를 주셔서 감사합니다. 많은 감사를드립니다. 당신의 설명은 정말 좋았고 이것이 어떻게 작동하는지 더 잘 이해할 수있었습니다. – Morrislgn