0
내 ASP.net MVC보기에서 선택 항목을 가져오고 비동기 적으로 div를 업데이트하려고하는 드롭 다운이 있습니다. 드롭 다운의 선택에 제대로포스트 백에서 ASP.net MVC 라우팅
<% using (Html.BeginForm("Index", "Portal", FormMethod.Post, new { id = "TheForm" }))
{%>
<h2>Index</h2>
<% using (Ajax.BeginForm("Details", new AjaxOptions { UpdateTargetId = "mpkResults" }))
{ %>
<%=Html.DropDownList("Docs", (IEnumerable<SelectListItem>)ViewData["Docs"],
new { onchange = "document.getElementById('TheForm').submit();" })%>
<p><input type="submit" value="Details" /></p>
<% } %>
<div id="mpkResults" style="margin:10px 0px 0px 0px;"></div> ...
onchange를 이벤트가 발생을 대신 발사 뒤에 내 코드의 세부 방법, 그것은 내 색인 방법 안타 다음과 같이 내 영문입니다. onchange 이벤트에서 세부 정보 메서드가 적용되지 않는 이유는 무엇입니까? 컨트롤러에서 나의 상세 정보() 메소드는 다음과 같습니다
public ActionResult Details()
{
... < It never gets here, just goes to the index() method
}
나는 그것이 단순한 실수 만이 할 수있는 것을 확실하지 확신 이후 지금 조금 실망입니다. 내 페이지의 소스에보고하고 세부 작업에 라우팅해야처럼 과연, 양식 같습니다
<form action="/Portal/Details" method="post" ...
어떤 도움을 주시면 감사하겠습니다.
감사합니다. Fyodor, 나는 그것을 간과했습니다. Ajax.BeginForm()에서 양식 ID를 어떻게 지정합니까? 나는 그것을 매개 변수로 보지 않는다 ... –
'Html.BeginForm()'과 마찬가지로'htmlAttributes' 인자를 가진 오버로드를 사용한다. 내 대답이 당신을 도왔다면, 받아들이시겠습니까? –
Fyodor, 그 매개 변수를 가진 하나를 찾았습니다. <% using (Ajax.BeginForm ("Details", ""새로운 AjaxOptions {UpdateTargetId = "mpkResults"}, 새로운 {id = "SubForm"})) {% = {% = Html.DropDownList ("Docs", (IEnumerable), ViewData [ "Docs"], 새 {onchange = "document.getElementById ('SubForm') %> "SubForm"을 사용하여 올바른 HTML을 생성하지만 Index() 메서드가 여전히 호출되고 있습니다. 기꺼이 답으로 표시 하겠지만 세부 정보 메서드가 실행되는지 확인하고 싶습니다. 즉 작동 확인입니다. –