- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 MVC 创建一个项目。我有一个 View ,用户将在其中的文本框 和下拉列表 中输入所有数据。
那些文本框和下拉列表在两个单独的局部 View 中创建,我在一个 View 中呈现这些局部 View 。
我的问题是 textbxes 得到正确验证 但下拉列表没有得到验证,即使我选择值。
When I render only one partial view which displays textboxes my control goes to respective Action Method. But when I render partial view for drop down lists; it gives me validation errors even when I select values in drop down lists
我会发布我的代码。
请记住,我只发布了一段代码,因为我的部分 View 包含文本框和下拉列表的重复代码。
抱歉代码太长!!
显示文本框的局部 View 代码
@model PITCRoster.tblUser
<script src="~/Content/CustomScripts/DatePickers.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<fieldset>
<legend>tblUser</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
// many other textboxes.
</fieldset>
显示下拉列表的局部 View 代码
@model PITCRoster.ViewModel.LookUpViewModel
<script src="~/Content/CustomScripts/DatePickers.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
@Html.LabelFor(m => m.SelectedLocation)
@Html.DropDownListFor(m => m.SelectedLocation, Model.LocationList, "-Please select-")
@Html.ValidationMessageFor(m => m.SelectedLocation)
//many other dropdownlists
我在其中呈现这两个局部 View 的 View
@model PITCRoster.ViewModel.WrapperViewModel
@{
ViewBag.Title = "Resources";
}
<script src="~/Content/PopUp.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<h2>Resources</h2>
@{
//Html.RenderPartial("_DisplayResources")
Html.RenderPartial("_DisplayResources",Model.tblUser);
}
<div id="dialog">
@using (Html.BeginForm("AddResource", "Resources", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
Html.RenderPartial("_CreateNewResource", new PITCRoster.tblUser());
Html.RenderPartial("_LookUpDropDowns", Model.LookUpViewModel);
<br />
<input type="submit" value="Create" />
}
</div>
这里的WrapperViewModel 是一个ViewModel 类,它包含属性,这些属性 具有呈现那些局部 View 所需的数据。
这是 WrapperViewModel 的代码
public class WrapperViewModel
{
//tblUser will be a property of class tblUser.
public IEnumerable<tblUser> tblUser { get; set; }
//It will contain property of class LookUpViewModel.
public LookUpViewModel LookUpViewModel { get; set; }
}
所有的文本框都来自类tblUser所有下拉列表都来自类LookUpViewModel
这是我的 LookUpViewModel 类
public class LookUpViewModel
{
[Display(Name = "Location")]
[Required(ErrorMessage = "Please select a location")]
public int SelectedLocation { get; set; }
public SelectList LocationList { get; set; }
}
要理解这门课,请引用我的问题和Stephen Muecke 对那个问题的解决方案 here
这是我在 LocationList 中填充数据的方式
RosterManagementEntities rosterManagementContext = new RosterManagementEntities();
// populate your select lists
var locations = from o in rosterManagementContext.tblCurrentLocations select o;
model.LocationList = new SelectList(locations, "LocationId", "Location");
这是我的 AddResource 操作方法
[HttpPost]
public ActionResult AddResource(LookUpViewModel modelLookUp, tblUser tblUser)
{
Helpers.CopyLookUpViewModelTotblUser(modelLookUp, tblUser);
return View(modelLookUp);
}
编辑
为 DropDownListFor() 生成的 HTML:
<select name="SelectedLocation" id="SelectedLocation" data-val-required="Please select a location" data-val="true" data-val-number="The field Location must be a number." value="">
它还有<option value = "">
为 ValidationMessageFor() 生成的 HTML:
<span class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="SelectedLocation" value=""/>
谢谢你..
最佳答案
我已经复制了你的代码,我的工作正常,这就是我所做的
LookUpViewModel.cs
public class LookUpViewModel {
[Display(Name = "Location")]
[Required(ErrorMessage = "Please select a location")]
public int SelectedLocation { get; set; }
public SelectList LocationList { get; set; }
}
tblCurrentLocations.cs
public class tblCurrentLocations {
public int LocationId { get; set; }
public string Location {get;set;}
}
tblUser.cs
public class tblUser {
[Display(Name = "First Name")]
[Required(ErrorMessage = "First Name required")]
public string FirstName {get; set;}
}
我使用了 Index
我的方法 HomeControler
呈现初始 View
public ActionResult Index() {
var locations = new List<tblCurrentLocations>();
locations.Add(new tblCurrentLocations {LocationId = 1, Location = "A"});
locations.Add(new tblCurrentLocations {LocationId = 2, Location = "B"});
var model = new WrapperViewModel();
model.LookUpViewModel = new LookUpViewModel() {
LocationList = new SelectList(locations, "LocationId", "Location")
};
return View(model);
}
_CreateNewResource.cshtml
@model WebApplication1.Models.tblUser
<fieldset>
<legend>tblUser</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
// many other textboxes.
_LookUpDropDowns.cshtml
model WebApplication1.Models.LookUpViewModel
@Html.LabelFor(m => m.SelectedLocation)
@Html.DropDownListFor(m => m.SelectedLocation, Model.LocationList, "-Please select-")
@Html.ValidationMessageFor(m => m.SelectedLocation)
最后是呈现所有 Partials
的 View
@model WebApplication1.Models.WrapperViewModel
@{
ViewBag.Title = "Resources";
}
<script src="~/Scripts/jquery-2.1.4.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<h2>Resources</h2>
<div id="dialog">
@using (Html.BeginForm("AddResource", "Home", FormMethod.Post)) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
Html.RenderPartial("_CreateNewResource", new WebApplication1.Models.tblUser());
Html.RenderPartial("_LookUpDropDowns", Model.LookUpViewModel);
<br />
<input type="submit" value="Create" />
}
关于 validation
这对我来说效果很好并发布选定的结果,您提到 View 中的内容比您发布的内容多,也许 View 中的其他内容造成了麻烦。另请注意,我必须添加 <script src="~/Scripts/jquery-2.1.4.min.js"></script>
让验证工作,你已经 ommited
关于c# - 在部分 View 中创建的下拉列表在呈现时未在 View 中正确验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31603981/
在 JSF2 应用程序中遇到验证属性的问题时,有两种主要方法。 使用 Annotation 在 ManagedBean 上定义验证 @ManagedBean public class MyBean {
我想实现一个不常见的功能,我认为 jquery 验证插件将是最好的方法(如果您在没有插件的情况下建议和回答,我们也会欢迎)。我想在用户在输入字段中输入正确的单词后立即隐藏表单。我试过这个: $("
我有几个下拉菜单(类名为month_dropdown),并且下拉菜单的数量不是恒定的。我怎样才能为它们实现 NotEqual 验证。我正在使用 jQuery 验证插件。 这就是我写的 - jQuery
我设法制作了这个网址验证代码并且它起作用了。但我面临着一个问题。我认为 stackoverflow 是获得解决方案的最佳场所。 function url_followers(){ var url=do
我目前正在使用后端服务,该服务允许用户在客户端应用程序上使用 Google Games 库登录。 用户可以通过他们的 gplay ID 向我们发送信息,以便登录或恢复旧帐户。用户向我们发送以下内容,包
我正在尝试验证输入以查看它是否是有效的 IP 地址(可能是部分地址)。 可接受的输入:172、172.112、172.112.113、172.112.113.114 Not Acceptable 输入
我从 Mongoose 验证中得到这条消息: 'Validator failed for path phone with value ``' 这不应该发生,因为不需要电话。 这是我的模型架构: var
我一直在尝试使用Python-LDAP (版本 2.4.19)在 MacOS X 10.9.5 和 Python 2.7.9 下 我想在调用 .start_tls_s() 后验证与给定 LDAP 服务
我正在处理一个仅与 IE6 兼容的旧 javascript 项目(抱歉...),我想仅在 VS 2017 中禁用此项目的 ESLint/CSLint/Javascript 验证/CSS 验证。 我知道
我正在寻找一种方法来验证 Spring 命令 bean 中的 java.lang.Double 字段的最大值和最小值(一个值必须位于给定的值范围之间),例如, public final class W
我正在尝试在 springfuse(JavaEE 6 + Spring Framework (针对 Jetty、Tomcat、JBoss 等)) 和 maven 的帮助下构建我的 webapps 工作
我试图在我们的项目中使用 scalaz 验证,但遇到了以下情况: def rate(username: String, params: Map[String, String]): Validation
我有一个像这样的 Yaml 文件 name: hhh_aaa_bbb arguments: - !argument name: inputsss des
我有一个表单,人们可以单击并向表单添加字段,并且我需要让它在单击时验证这些字段中的值。 假设我单击它两次并获取 2 个独立的字段集,我需要旋转 % 以确保它在保存时等于 100。 我已放入此函数以使其
在我的页面中有一个选项可以创建新的日期字段输入框。用户可以根据需要创建尽可能多的“截止日期”和“起始日期”框。就像, 日期_to1 || date_from1 日期到2 ||日期_from2 date
我有一个像这样的 Yaml 文件 name: hhh_aaa_bbb arguments: - !argument name: inputsss des
有没有办法在动态字段上使用 jquery 验证表单。 我想将其设置为必填字段 我正在使用 Jsp 动态创建表单字段。 喜欢 等等...... 我想使用必需的表单字段验证此表单字段。 最佳答
嗨,任何人都可以通过提供 JavaScript 代码来帮助我验证用户名文本框不应包含数字,它只能包含一个字符。 最佳答案 使用正则表达式: (\d)+ 如果找到匹配项,则字符串中就有一个数字。 关于J
我有两个输入字段holidayDate和Description(id=tags) $(document).ready(function() {
我遇到了这个问题,这些验证从电子邮件验证部分开始就停止工作。 我只是不明白为什么即使经过几天的观察,只是想知道是否有人可以在这里指出我的错误? Javascript部分: function valid
我是一名优秀的程序员,十分优秀!