다음과 같은 문제가 발생했습니다.
사용자 방문 사이트에서 "추가"를 클릭하고 컨트롤러로 다시 보내면 모델이 검색되고 다시 한 번보기로 전송됩니다. 내부보기, 모델이 null이 아닌지 확인합니다 및 데이터를 표시합니다.모델이 Html.BeginForm()으로 null입니다. ASP.NET MVC
@if (Model != null)
{
<div id="appInfo">
<table>
<tr>
<th>@Html.DisplayNameFor(x => Model.tytul)</th>
<th>@Html.DisplayNameFor(x => Model.kategoria.nazwa)</th>
<th>@Html.DisplayNameFor(x => Model.liczba_ocen)</th>
<th>@Html.DisplayNameFor(x => Model.avg_ocena)</th>
<th>@Html.DisplayNameFor(x => Model.typ)</th>
</tr>
<tr>
<td>@Model.tytul</td>
<td>@ViewData["kategoria"]</td>
<td>@Model.liczba_ocen</td>
<td>@Model.avg_ocena</td>
<td>@Model.typ</td>
</tr>
</table>
</div>
<div>
@using (Html.BeginForm("Confirm", "Wydawca", new { app = @Model }))
{
<input type="submit" value="Cofirm it" />
}
</div>
"확인"버튼이 생성되고 한 번 클릭하면 확인 메소드가 실행되지만 app 변수는 항상 null입니다. 모델이 아닌 다른 것으로 그 가치를 설정하면 작동합니다.
[HttpPost]
public ActionResult Confirm(aplikacja app)
{
...
}
"확인"버튼을 만드는 동안 모델이 null이 아닌지 확인했습니다. 무슨 일이 일어나고 있는지 아십니까?
당신은 경로 매개 변수 (응용 프로그램)으로 객체 (@Model)을 통과하려고
<form action="/Wydawca/Confirm?app=Adds.Models.aplikacja" method="post">
<input type="submit" value="Zatwierdź" />
양식 태그의 렌더링 된 html은 무엇입니까? (당신이'app = @ Model'을 렌더링 할 것으로 기대하는지 확신 할 수 없다.) –
'Html.BeginForm'은 모든 입력 요소를 감싸 줘야하거나 게시 할 것이 없다. – DavidG
데이터를 편집하지 않으므로 전체 모델을 다시 게시해야하는 이유 (모델의 고유 ID에 route 매개 변수를 설정하는 것과 반대) –