To, co powinno być prostym problemem, to z jakiegoś powodu mnie zbija. Jestem nowy w MVC, więc powinienem to wyjaśnić.Czyszczenie pól pól tekstowych na stronie w MVC
Próbuję wyczyścić wszystkie pola na stronie po wprowadzeniu zgłoszenia.
Widziałem poniższy kod używany w przykładach, ale nie wiem, gdzie go umieścić. Próbowałem go w moim PersonModel.vb i to generuje błędy. Próbowałem go w moim repozytorium, w którym trzymam swoje subwoofery i funkcje i za każdym razem generuje błędy ponad słowem (s) ModelState i ValueProvierResult.
ModelState.SetModelValue("Key", new ValueProviderResult(null, string.Empty, CultureInfo.InvariantCulture))
Czy ktoś może zaoferować mi poradę, aby wyczyścić pola (pola tekstowe) na stronie? Jestem bardzo nowy w MVC i mogę użyć jakiegoś wsparcia.
Dzięki
LW
Oto kod ....
<HttpPost(), MvcReCaptcha.CaptchaValidator()> _
Function Nominate(ByVal m As NominationModel, ByVal captchaValid As Boolean) As ActionResult
Dim db = New ChampionTrees.Common.DataAccess.ChampionTreesRepository With {.UserName = "SYSTEM"}
BindNominateDdls(db)
Dim addPost As Boolean = False
If (Request.Form("addNominator") <> Nothing) Then
m.People.Add(New PersonModel With {.Indicator = PersonIndicator.Nominator})
addPost = True
ElseIf Request.Form("addOwner") <> Nothing Then
m.People.Add(New PersonModel With {.Indicator = PersonIndicator.Owner})
addPost = True
Else
For Each f In Request.Form.Keys
If f.ToString.StartsWith("deletePerson") Then
Dim idx = f.ToString.IndexOf("n")
m.People.RemoveAt(Integer.Parse(f.ToString.Substring(idx + 1, f.ToString.Length - (idx + 1))))
addPost = True
Exit For
End If
Next
End If
If addPost Then
For Each v In ModelState.Values.AsEnumerable()
v.Errors.Clear()
Next
Return View(m)
End If
If m.Tree.Id < 0 AndAlso String.IsNullOrEmpty(m.OtherName) Then
Dim err As String = "Either a Common, Scientific, or Other Name must be provided."
ModelState.AddModelError("Tree.Id", err)
ModelState.AddModelError("OtherName", err)
End If
If String.IsNullOrEmpty(m.Measurement.CountyForester) = _
String.IsNullOrEmpty(m.Measurement.OtherCountyForester) Then
Dim err As String = "A County Forester must be selected or entered (but not both)."
ModelState.AddModelError("Measurement.CountyForester", err)
ModelState.AddModelError("Measurement.OtherCountyForester", err)
End If
Dim i As Integer = 0
For Each p As PersonModel In m.People
If String.IsNullOrEmpty(p.EmailAddress) AndAlso _
(p.Phone.Phone1 Is Nothing Or p.Phone.Phone2 Is Nothing Or p.Phone.Phone3 Is Nothing) Then
ModelState.AddModelError(String.Format("People[{0}].Phone", i), "Either an E-mail Address or Phone number must be provided.")
ModelState.AddModelError(String.Format("People[{0}].Phone.Phone1", i), "")
ModelState.AddModelError(String.Format("People[{0}].Phone.Phone2", i), "")
ModelState.AddModelError(String.Format("People[{0}].Phone.Phone3", i), "")
ModelState.AddModelError(String.Format("People[{0}].EmailAddress", i), " ")
Else
Dim int As Integer = 0
Dim err As Boolean = False
If Not p.Phone.Phone1 Is Nothing AndAlso _
(p.Phone.Phone1.Length <> 3 Or Not Integer.TryParse(p.Phone.Phone1, Int)) Then
ModelState.AddModelError(String.Format("People[{0}].Phone.Phone1", i), "")
err = True
End If
If Not p.Phone.Phone2 Is Nothing AndAlso _
(p.Phone.Phone2.Length <> 3 Or Not Integer.TryParse(p.Phone.Phone2, int)) Then
ModelState.AddModelError(String.Format("People[{0}].Phone.Phone2", i), "")
err = True
End If
If Not p.Phone.Phone3 Is Nothing AndAlso _
(p.Phone.Phone3.Length <> 4 Or Not Integer.TryParse(p.Phone.Phone3, int)) Then
ModelState.AddModelError(String.Format("People[{0}].Phone.Phone3", i), "")
err = True
End If
If err Then ModelState.AddModelError(String.Format("People[{0}].Phone", i), "Phone Number is not numeric.")
End If
If m.OwnershipType = Ownership.Public AndAlso _
p.Indicator = PersonIndicator.Owner AndAlso _
p.ParcelName Is Nothing Then
ModelState.AddModelError(String.Format("People[{0}].ParcelName", i), "The Parcel Name field is required for public nominations.")
End If
i += 1
Next
If Not m.UseNominatorsAsOwners AndAlso _
(From e In m.People Where e.Indicator = PersonIndicator.Owner Select e).Count = 0 Then
ModelState.AddModelError("UseNominatorsAsOwners", "At least one Owner is required.")
End If
If Files.Count > 0 AndAlso Not m.ElectronicUseAgreement Then
ModelState.AddModelError("ElectronicUseAgreement", "The Electronic Use Agreement must be agreed to.")
End If
If Not captchaValid Then
ModelState.AddModelError("ReCaptcha", "You did not type the verification word correctly. Please try again.")
End If
If ModelState.IsValid Then
' load our uploads from session
For Each f In Files
f.Value.Viewable = m.ElectronicUseAgreement
m.Uploads.Add(f.Value)
Next
' insert the nomination into the db
db.InsertNomination(m)
ViewData("message") = "Nomination has been submitted"
End If
ModelState.Clear()
Return View(m)
Kiedy próbuję, że mówi "ModelState" nie jest zadeklarowane. Gdzie powinienem użyć tego kodu? – Lee
Próbowałem nawet na stronie aspx i mówi, że nie ma metody Clear() dla ModelState ...... – Lee
Zaktualizowałem z przykładowym kodem - jeśli nadal nie rozumiesz, możesz opublikować swój kod. Dzięki – lancscoder