ممنون؛ من بدین صورت عمل کردم که دوتا ولیدیتور جداگانه برای ایمیل و نام کاربری در نظر گرفتم. هر دو متد ValidateAsync را override میکنن . و در startup من هر دو کلاس تعریفی CustomUserValidator و CustomEmailValidator را تزریق کردم و برای هر کدام در کنترلر Account یک متد جداگانه برای remote در نظر گرفتم. اما فقط از متد ValidateAsync موجود در CustomEmailValidator استفاده میکنه. یعنی کلاسی که در آخر override شده است. کدوم قسمت رو درست نفهمیدم که این متد رو درست تفکیک نمیکنه؟
حالت پیشفرض اعتبارسنجی آن OnBlur هست. یکبار هم که انجام شد، تا زمانیکه cache آن تغییری نکند، تکرار نمیشود. اگر میخواهید این وضعیت را تغییر دهید، میتوان آنرا دستی هم فعال کرد:
$("#id1").change(function () { // trigger RemoteValidation $('#id1').removeData('previousValue'); //clear cache $('form').validate().element('#id1'); //retrigger remote call // $('#id1').blur(); });
مراجعه کنید به مطلب «اعتبار سنجی ورودیهای کاربر در Kendo UI». در انتهای
مطلب در مورد «اعتبارسنجی سفارشی در DataSource»
بحث شدهاست. Kendo UI Grid هم اطلاعات اعتبارسنجی فیلدهای خودش را از data source دریافت میکند و ... اصول طراحی اعتبارسنجی آن، هیچ تفاوتی با نکتهی عنوان شده ندارد (یک custom rule سفارشی را به نام remote، دقیقا مانند همین مثال میتوانید اضافه کنید).
من برای فعال سازی remote validation از پروژه Moon استفاده کردم اما باز هم عمل نمیکنه!
[Moon.Web.Validation.RemoteValidator("IsUserExist", "Admin", HttpMethod = "POST", ErrorMessage = "نام کاربری قبلا ثبت شده است.")] public string Username { get; set; }
@Html.EditorFor(model => model.Username) @Html.ValidationMessageFor(model => model.Username)
[HttpPost] public ActionResult IsUserExist(string Username) { if (userSerive.isUser(Username)) return Json(true); return Json(false); }
روش بسیار جالبی بود.اما یک مشکل که در این روش با آن روبرو میشویم این است که هنگام ویرایش یک رکورد موجود در بانک ، اگر قرار نباشد فیلد مورد نظر بروز رسانی شود ، اکشن متد ذکر شده دست ما را میبندد و اجازه آپدیت را نمیدهد.
شاید یک راه ایجاد یک viewModel جداگانه برای آپدیت باشد که در آن از remote attribute صرف نظر شود ، اما این راه حل زیاد جالب به نظر نمیرسد!
آیا راه حل مناسبتری وجود دارد؟
سلام من وقتی این خط را اجرا میکنم Install-Package structuremap این خطا را بهم میدهد
PM> Install-Package structuremap
Install-Package : The remote name could not be resolved: 'az320820.vo.msecnd.net'
At line:1 char:16
+ Install-Package <<<< structuremap
+ CategoryInfo : NotSpecified: (:) [Install-Package], WebException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
remote name could not be resolved یعنی مشکل DNS و یا تنظیمات اتصالی را دارید به احتمال زیاد. آدرس زیر را در IE امتحان کنید (از این جهت که تنظیمات اینترنت IE به برنامههای دات نت به صورت پیش فرض اعمال میشوند). اگر باز نشد، مشکل اتصالی دارید:
https://az320820.vo.msecnd.net/packages/structuremap.2.6.4.1.nupkg
https://az320820.vo.msecnd.net/packages/structuremap.2.6.4.1.nupkg
نظرات مطالب
ایجاد یک Repository در پروژه برای دستورات EF
مهندس با نظر دوستمون موافقم
IQueryable بهترین انتخاب برای remote data source که میشه به database یا webserviceها اشاره کرد.بطور کل اگر شما از ORM مسه linqtosql استفاده میکنید
IQueriable: کوئری شمارو به دستورات sql در database server تبدیل میکنه
IEnumerable: همه رکوردهای شما قبل از اینکه بسمت دیتابیس برن بصورت object در memory نگهداری میشن.
IQueryable بهترین انتخاب برای remote data source که میشه به database یا webserviceها اشاره کرد.بطور کل اگر شما از ORM مسه linqtosql استفاده میکنید
IQueriable: کوئری شمارو به دستورات sql در database server تبدیل میکنه
IEnumerable: همه رکوردهای شما قبل از اینکه بسمت دیتابیس برن بصورت object در memory نگهداری میشن.
با تشکر از برنامه خوبتون...
برای من توی خط 97 کلاس siteLoginManager خطا میده که خطاشم معمولا اینه:
The remote server returned an error: (417) Expectation Failed.
یا خطاهای مشابهی میده که سرور اجازه نمیده. درحالی که هنوز اکسپایر نشده و میتونم آنلاین همون دوره رو ببینم.
میشه درستش کرد؟؟ :-؟
برای من توی خط 97 کلاس siteLoginManager خطا میده که خطاشم معمولا اینه:
The remote server returned an error: (417) Expectation Failed.
یا خطاهای مشابهی میده که سرور اجازه نمیده. درحالی که هنوز اکسپایر نشده و میتونم آنلاین همون دوره رو ببینم.
میشه درستش کرد؟؟ :-؟
مسیرراهها
الکترون
آشنایی با الکترون
آغاز کار با الکترون
شیوه کدنویسی در الکترون
استفاده از ماژول remote
استفاده از کتابخانه جی کوئری در الکترون
کار با دیتابیس Sqlite در الکترون (قسمت اول)
کار با دیتابیس Sqlite در الکترون (قسمت دوم)
ساخت رابط کاربری برای برنامههای الکترون
بسته بندی برنامههای الکترون
پیکربندی Electron Packager
استفاده از DLLهای دات نت در الکترون
آغاز کار با الکترون
شیوه کدنویسی در الکترون
استفاده از ماژول remote
استفاده از کتابخانه جی کوئری در الکترون
کار با دیتابیس Sqlite در الکترون (قسمت اول)
کار با دیتابیس Sqlite در الکترون (قسمت دوم)
ساخت رابط کاربری برای برنامههای الکترون
بسته بندی برنامههای الکترون
پیکربندی Electron Packager
استفاده از DLLهای دات نت در الکترون