ASP.Net Core: Unobtrusive validation not working
Solution 1
Please make sure your validation-related scripts are placed under the environment which you are using. Development Or Production.
I was struggling for some time and when I checked my script it was placed in the development section and my app was running using the production environment.
Once I placed the scripts under production it started working !
Solution 2
In my case the problem was quite different.
The validation scripts references were located in the default/built in _ValidationScriptsPartial.cshtml
that I was just adding to my page by adding
@section Scripts
{
<partial name="_ValidationScriptsPartial"/>
}
at the end of my View cshtml.
I could see that it was referenced properly in Developer Tools, so I thought it's all fine:
However, it turned out that the paths in _ValidationScriptsPartial
were not correct!
As you can see, there is only minified version available... and in the case of the second one, a dist
subfolder is missing.
It was quite surprising, giving this was a boilerplate code that I did not touch.
Related videos on Youtube
Arnold Zahrneinder
Zei tchewandergehte miezch schtutenawkenen vech ichtanspolzovalt. Technologunden verhnachthayete miezch schtwergte Java siender C#, funderhagte meizch utherwarzin lungunstenen tcherstwastender. Zurch tiech faldangenen enst debei machzen
Updated on September 15, 2022Comments
-
Arnold Zahrneinder over 1 year
The client side validation in ASP.Net Core (Unlike ASP.Net MVC 5) is not working. I have the following code:
public class CountryModel{ [Required] public String Title {get; set;} }
and in my view page
using(Html.BeginForm()){ @Html.LabelFor(x=> x.Title) @Html.ValidationMessageFor(x=> x.Title) @Html.EditorFor(x=> x.Title) <Button>Add</Button> }
with the following scripts added to the end of the page:
... <script src="~/lib/jquery/dist/jquery.js"></script> <script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script> <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
But it fails. I have check the script through viewing the source in my browser and the scripts have been loaded properly. I have pointed a break point to my Action API to double check, and any time the add button is pressed I reach the break point meaning the client side validation fails.
Is there any additional configuration in ASP.Net Core?? Because this approach works just fine in MVC 5.