Asp.net MVC ModelState.Net
Kimse bana ASP.NET MVC ModelState rolü (bağlantı) kısa ve öz bir tanım verebilir. Özellikle hangi durumlarda gerekli veya uygun ModelState.Clear()
aramak için olduğunu bilmek istiyorum.
Biraz açık uçlu değil... özür dilerim, aslında ne yaptığımı sana yardımcı olabilir sanırım
Bir Denetleyici olarak adlandırılan Düzenleme bir Eylem Var"". Sayfa Ben ilk Sayfanın ayrıntılarını değiştirmek için bu formu görünce her şey güzel (bağlama "MyCmsPage" nesne). bir sürü iş Ben MyCmsPage biri için bir değer üreten bir düğmesini tıklatın nesnenin alanı (MyCmsPage.SeoTitle
). Ürettiği ince ve güncellemeleri nesne ve ben sonra dönüş eylem sonucu yeni değiştirilmiş sayfa nesne ve bekliyoruz ilgili textbox (işlenmiş kullanarak <%= Html.TextBox("seoTitle", page.SeoTitle)%>
) haberdar olmak için ... ama ne yazık ki bu görüntüler değeri eski model yüklenmiş.
ModelState.Clear()
kullanarak etrafında çalıştım ama körü körüne yapmıyorum çok çalıştı neden bilmek istiyorum.
PageController:
[AcceptVerbs("POST")]
public ActionResult Edit(MyCmsPage page, string submitButton)
{
// add the seoTitle to the current page object
page.GenerateSeoTitle();
// why must I do this?
ModelState.Clear();
// return the modified page object
return View(page);
}
SEO:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyCmsPage>" %>
....
<div class="c">
<label for="seoTitle">
Seo Title</label>
<%= Html.TextBox("seoTitle", page.SeoTitle)%>
<input type="submit" value="Generate Seo Title" name="submitButton" />
</div>
CEVAP
MVC bir hata olduğunu düşünüyorum. Saatlerce bu konu ile bugün mücadele etti.
Verilen bu
public ViewResult SomeAction(SomeModel model)
{
model.SomeString = "some value";
return View(model);
}
Görünümü orijinal modeli ile, değişiklikleri görmezden işler. Ben de düşündüm ki, belki bu gibi çalıştım o yüzden bana aynı model gibi değil:
public ViewResult SomeAction(SomeModel model)
{
var newModel = new SomeModel { SomeString = "some value" };
return View(newModel);
}
Ve hala orijinal modeli ile işler. Tuhaf olan şey, görünümünde bir kesme koydum ve modelini incelediğinizde, değişen değere sahip. Ama yanıt akışı eski değerlere sahiptir.
Sonunda yaptın aynı bir çözüm keşfettim
public ViewResult SomeAction(SomeModel model)
{
var newModel = new SomeModel { SomeString = "some value" };
ModelState.Clear();
return View(model);
}
Beklendiği gibi çalışır.
Sanmıyorum bu bir"," değil mi? özelliktir
ASP.NET Web API ModelState DoÄŸrulama i...
ModelState.İsValid == false, neden?...
ModelState.AddModelError - Ne'bir...
ASP.NET ModelState hataları json dönüş...
Nasıl alay ModelState.Adedi çerçeve ku...