PDA

View Full Version : بهترین راه در ModelState.isvalid



آرام جان گل
جمعه 04 بهمن 1392, 21:15 عصر
با سلام
من یه View دارم که سه تا فیلد داره که اونها را از طریق مدل به view ارسال میکنم . در حقیقت فرم لاگین است که دو تا از این فیلد ها UserName و Password هستند که در زمان لاگین باید ارزیابی شوند و فیلد سوم فیلد Email است که در زمانی که کاربر اعلام کند که نام کاربری و کلمه عبور خود را فراموش کرده برایش ارسال می گردد .

در مدل برای این فیلد ها dataAnotation تعریف کرده ام .
نکته اینه که اگر من از ModelState.IsValid استفاده کنم ( مثلا در لاگین کردن) هر سه فیلد را در نظر میگیره .

برای این که در زمان لاگین به دنبال valid بودن فیلد Email نباشد من از گزینه :


ModelState.IsValidField(



"Password") && ModelState.IsValidField("UserName")

استفاده می کنم
نمی دونم این بهترین راهه و یا اینکه راههای بهتر و مطلوب تری در کد نویسی MVC وجود داره .
اگر راه بهتری وجود داره لطفا راهنمایی کنید.

d_derakhshani
جمعه 04 بهمن 1392, 23:53 عصر
راه شما بد نیست اما یک راه دیگه شاید بهتر باشه(بستگی به موقیعت داره) اینه:

ModelState.Remove("Email");

Cybersilent
شنبه 05 بهمن 1392, 12:46 عصر
روش شما مشکلی نداره.
روش صحیح کار در MVC استفاده از ViewModel در چنین مواقعی هست. یعنی شما نباید کلاس های Domain Model خود را مستقیما برای کار با View به کار ببرید.
اطلاعات بیشتر: http://www.dotnettips.info/post/1243/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-viewmodel-%D8%AF%D8%B1-asp-net-mvc