ASP.NET MVC 2.0'de doğrulama ile ilgili bir sorunum var. Kullanıcı isteğini gerçekleştirmek için Kontrolörde aynı Eylemi kullanırım. Örneğin
:Doğrulama iletileri, sayfa yüklenirken görüntüleniyor
public ActionResult Index(ReportModel model)
{
if (!model.IsInitialDisplay && ModelState.IsValid)
{
model.Result = service.GetResult(model);
}
return View(model);
}
ReportModel, ben sayfa ilk görüntülenen olup olmadığını belirlemek için bir bayrak IsInitialDisplay tanımlayın:
public class ReportModel
{
[Required(ErrorMessage = "*")]
public string Criteria { get; set; }
public bool IsInitialDisplay { get; set; }
public ReportResult Result { get; set; }
public ReportModel()
{
IsInitialDisplay = true;
}
}
Ve View, aşağıdaki kodu kullanabilirsiniz
:<% using (Html.BeginForm())
{ %>
<table>
<tr>
<th>
Criteria:
</th>
<td>
<%= Html.TextBox("Criteria", "") %>
<%= Html.ValidationMessage("Criteria") %>
</td>
</tr>
</table>
<br />
<input type="submit" value="Submit" />
<%= Html.Hidden("IsInitialDisplay", false) %>
<% } %>
beklediğim gibi kullanıcılar Kriterleri için herhangi bir değer değil girişi yapmak Gönder tuşuna basınız, eğer doğrulama için hata mesajı di olacak yayvan.
Ancak, her zaman ilk sayfa yüklemesinde görüntülenen doğrulama hata mesajı nasıl önlenir bilmiyorum?
Kimse biliyor mu? Teşekkürler,
[Güncellendi]
Ben aşağıda benim Eylem yöntemi güncelledik ve iyi görünüyor oluyor:
public ActionResult Index(ReportModel model)
{
// Collecting some commons data here...
if (model.IsInitialDisplay)
{
ModelState.Clear();
}
else if (ModelState.IsValid)
{
model.Result = service.GetResult(model);
}
return View(model);
}
Projemde, _ReportModel.Criteria_ için karmaşık model nesnesini kullanıyorum. Yani öneriniz uygun değil. – aquanilium