خطای The POST request not specify which form being submitted
از Blazor 9 دارم برای پروژم استفاده می کنم. یک فرم ساختم که دو تا input ساده داخلش دارم به همراه یک دکمه submit. موقعی که اطلاعات رو وارد میکنم و روی دکمه submit کلیک می کنم با خطای زیر مواجه میشم.
The POST request does not specify which form is being submitted. To fix this, ensure <forms> elements have a @formname attribute with any unique value, or pass a FormName parameter if using <EditForm>
کدهای مربوط به فرم من هم به صورت زیر هست :
<EditForm Model="Input" OnSubmit="SaveProductAsync">
<input @bind=Input.Name type="text" class="form-control" id="name" placeholder="product name">
<label for="name">Name</label>
<input @bind=Input.Price type="number" class="form-control" id="price" placeholder="product price">
<label for="price">Price</label>
<div class="col-12">
<button class="btn btn-primary" type="submit">Save</button>
</div>
</EditForm>
@code {
public ProductDto Input { get; set; }
protected override void OnInitialized()
{
Input ??= new();
}
}
استفاده از ویژگی FormName در فرم های Blazor
یکی از تغییرات مهم در Blazor 8 نسبت به نسخه های قبلی اضافه شدن یک attribute به نام FormName در تگ EditForm می باشد. در واقع قبلا نیازی نبود که به فرم ها یک نام منحصربفرد اختصاص بدهیم. اما از نسخه 8 ببعد این موضوع اجباری شده است و فرم ها هم باید یک نام اختصاصی و منحصر بفرد برای خود داشته باشند. بنابراین شما برای رفع این مشکل باید کدهای خودتون رو به صورت زیر تغییر بدید :
<EditForm Model="Input" OnSubmit="SaveProductAsync" FormName="myForm1">
...
</EditForm>
@code {
[SupplyParameterFromForm(FormName = "myForm1")]
public ProductDto Input { get; set; }
protected override void OnInitialized()
{
Input ??= new();
}
}
همان طور که ملاحظه می کنید در تگ EditForm از کلمه FormName استفاده کردیم و یک نام منحصربفرد برای فرم اختصاص دادیم. همچنین در قسمت code هم باید از attribute به نام SupplyParameterFromForm استفاده کنیم تا مشخص کنیم که مدلی که مشخص کردیم دقیقا اطلاعات خود را از کدام فرم قرار است دریافت کند. به این ترتیب می توانیم تعداد زیادی Form در صفحه خود داشته باشیم.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- تفاوت بین Blazor و Angular و react.js چیست ؟
- Blazor چیست ؟ کاربرد Blazor در وب چیست ؟
- فرق بین (Blazor Client (web Assembly و Blazor Server چیست ؟
- پروژه از نوع Blazor چگونه کار می کند؟
- نمایش فرم مودال (Pop up) در بلیزر چگونه است ؟
- کامپوننت (Component) در بلیزر (Blazor) چیست ؟ کاربرد Component چیست ؟
- ارسال مقادیر بین کامپوننت ها در Blazor چگونه می باشد ؟ ارتباط بین کامپوننت ها در بلیزر
- کاربرد پارامتر RenderFragment در Blazor چیست ؟
- دلیل خطای component name cannot start with a lowercase charachter در Blazor
- مفهوم و کاربرد Event CallBack در Blazor چیست ؟