آرمان
آرمان
خواندن ۴ دقیقه·۵ سال پیش

ریدایرکت کردن و ارسال routevalue به page دیگر و استفاده از Remote validation در Razorpages

خوب فرض کنید ما در razor page یک page داریم که یک سفارش ثبت میکند و بعد از اینکه سفارش ثبت شده می خواهیم کاربر را به یک صفحه دیگر هدایت و مشخصات سفارشی که داده را نشانش دهیم(در اینجا مثلا نام سفارش).

فرض می کنیم این page ثبت سفارش ماست:

public class IndexModel : PageModel { readonly IViewerOrderService _viewerOrderService; public IndexModel(IViewerOrderService viewerOrderService) { _viewerOrderService = viewerOrderService; } [PageRemote( AdditionalFields = &quot__RequestVerificationToken&quot, HttpMethod = &quotpost&quot, PageHandler = &quotCheckValidations&quot )] [BindProperty] public Order Order { get; set; } public void OnGet() { } public async Task<IActionResult> OnPostAsync(CancellationToken cancelationToken) { if (!ModelState.IsValid) return Page(); await _viewerOrderService.AddOrder(Order, cancelationToken); return RedirectToPage(&quotThankYou&quot, new {orderName = Order.Name}); } public JsonResult OnPostCheckValidations() { if (!ModelState.IsValid) return new JsonResult(false); return new JsonResult(true); } }

به OnPostAsync دقت کنید Order.Name با نام orderName (در route) را به همراه صفحه ThankYou-تشکر ، RedirectToPage میکند.

حالا ما در صفحه ThankYou باید این مقدار را دریافت کنیم:

public class ThankYouModel : PageModel { [BindProperty(Name = &quotorderName&quot, SupportsGet = true)] public string Name { get; set; } public void OnGet() { } }

نکته ای که وجود دارد Name = "orderName", SupportsGet = true می باشد. حالا مقدار مورد نظر در پراپرتی Name بایند میشود به همین سادگی .



نکته تکمیلی: PageRemote و CheckValidations برای Remote Validation در Razorpages می باشد.

[PageRemote(AdditionalFields = &quot__RequestVerificationToken&quot, HttpMethod = &quotpost&quot, PageHandler = &quotCheckValidations&quot )]
public JsonResult OnPostCheckValidations() { if (!ModelState.IsValid) return new JsonResult(false); return new JsonResult(true); }
razor page remote validationrediret to pagerazor pages
یک برنامه نویس که هرآنچه را که یاد میگیرد در دفترچه یادداشت ویرگولیش یادداشت میکرد(!) حتی یک خط ! تا درصورت نیاز به آن رجوع کند...
شاید از این پست‌ها خوشتان بیاید