[英]Using RadioButtonFor with enum makes model not validate
我有一個問題,當將enum
與RadioButtonFor
一起使用時, $("#formtest").valid()
始終為false
。 如果我刪除RadioButtonFor
$("#formtest").valid()
現在為true
。
有人可以建議如何解決此問題嗎?
我的設置:
TestSurfaceController.cs
)通過jQuery ajax處理POST 這是我的代碼:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="/scripts/jquery.validate.js"></script>
<script src="/scripts/jquery.validate.unobtrusive.js"></script>
Test.cshtml:
@using MyProject_Umbraco.Models
@inherits UmbracoViewPage<MyProject_Umbraco.Models.TestViewModel>
@{
Layout = "Layout.cshtml";
}
@using (Html.BeginForm(null, null, FormMethod.Post, new {id = "formtest"}))
{
@Html.TextBoxFor(m => m.Model.FullName)
<ul>
<li>@Html.RadioButtonFor(m => m.Model.NotificationsFrequency, NotificationsFrequency.Instantly) Instant</li>
<li>@Html.RadioButtonFor(m => m.Model.NotificationsFrequency, NotificationsFrequency.Daily) Daily</li>
</ul>
<a id="btnSignup">Sign up</a>
}
@section BottomScripts
{
<script>
$(function() {
$("#btnSignup").on("click", function() {
signup();
});
var signup = function() {
$("#formtest").validate();
if ($("#formtest").valid()) { // always false
var obj = $("#formtest").serializeArray();
$.ajax({
url: "@Url.Action("Index", "TestSurface")",
type: "POST",
data: obj,
success: function(result) {
alert(result);
}
});
} // end if valid()
}; // end signup()
});
</script>
}
TestViewModel.cs:由Test.cshtml使用
using System.Globalization;
using Umbraco.Core.Models;
using Umbraco.Web.Models;
namespace MyProject_Umbraco.Models
{
public class TestViewModel : RenderModel
{
public TestViewModel(IPublishedContent content, CultureInfo culture)
: base(content, culture)
{
Model = new TestDataModel();
}
public TestViewModel(IPublishedContent content)
: base(content)
{
Model = new TestDataModel();
}
public TestDataModel Model { get; set; }
}
}
TestDataModel.cs
namespace MyProject_Umbraco.Models
{
public class TestDataModel
{
public string FullName { get; set; }
public NotificationsFrequency NotificationsFrequency { get; set; }
}
}
NotificationsFrequency.cs
public enum NotificationsFrequency
{
Instantly = 1,
Daily = 2
}
呈現的html:
<form action="" id="formtest" method="post">
<input id="Model_FullName" name="Model.FullName" type="text" value="" /> <ul>
<li><input checked="checked" data-val="true" data-val-required="The NotificationsFrequency field is required." id="Model_NotificationsFrequency" name="Model.NotificationsFrequency" type="radio" value="Instantly" /> Instant</li>
<li><input id="Model_NotificationsFrequency" name="Model.NotificationsFrequency" type="radio" value="Daily" /> Daily</li>
</ul>
<a id="btnSignup">Sign up</a>
</form>
設法解決這個問題。
原來有一些沖突的javascript庫。 通過將庫更新到最新版本進行修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.