asp.net的MVC XVAL验证
-
27-09-2019 - |
题
您好,我使用XVAL首次,它似乎做工精细为必填字段, 但是我有一些问题 首先它似乎验证布尔值不还的客户端验证不工作对我来说,这是不是对我来说是大问题,一个,我真的需要工作是stringlength财产。这似乎是因为超出字符串长度的时候,但没有错误消息显示这显然不是我想要的用户形式不贴做一些事情,有没有人能够成功做到这一点?
我的模型是这样的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace PitchPortal.Core
{
public class DocumentMetadata
{
//[Required]
// public bool visibility { get; set; }
[Required,StringLength(10, ErrorMessage = "title is too long")]
public string title { get; set; }
[Required, StringLength(10, ErrorMessage = "description is too long")]
public string description { get; set; }
[Required, StringLength(10, ErrorMessage = "summary is too long")]
public string summary { get; set; }
}
}
的HTML是这样的
<div id="results" title="Upload results"/>
<form id="myForm" action="<%=Url.Action("New") %>" method="post" enctype="multipart/form-data">
<% Html.EnableClientValidation(); %>
<%= Html.ValidationSummary() %>
<table>
<tr>
<td> <%=Html.Label("File")%></td>
<td>
<input type="file" id="file1" name="fileUpload" /> <br />
<%=Html.SubmitButton<DocumentController>(x => x.Upload(), "GetImage", "")%>
</td>
<td>
<%=Html.ValidationMessage("file1")%>
</td>
</tr>
<tr>
<td> <%=Html.Label("Visible")%></td>
<td>
<%= Html.RadioButton( "visibility",true,true) %>true
<%= Html.RadioButton("visibility", false)%>false
</td>
<td>
<%= Html.ValidationMessage("visibility")%>
</td>
</tr>
<tr>
<td> <%=Html.Label("Title")%></td>
<td> <%=Html.TextBox("doc.title")%></td>
<td> <%= Html.ValidationMessage("doc.title")%></td>
</tr>
<tr>
<td> <%=Html.Label("Description")%></td>
<td><%= Html.TextArea("doc.description")%></td>
<td><%= Html.ValidationMessage("doc.description")%></td>
</tr>
<tr>
<td> <%=Html.Label("Summary")%></td>
<td> <%= Html.TextArea("doc.summary")%></td>
<td> <%= Html.ValidationMessage("doc.summary")%></td>
</tr>
<tr>
<td> <%=Html.Label("Filetype")%></td>
<td> <%= Html.DropDownList("Filetype_id", (IEnumerable<SelectListItem>)ViewData.Model.AllFiletypesList)%> </td>
<td> <%= Html.ValidationMessage("doc.Filetype_id")%> </td>
</tr>
<tr>
<td> <%=Html.Label("Category")%></td>
<td><%= Html.DropDownList("cat.parent_id", (IEnumerable<SelectListItem>)ViewData.Model.AllCategoriesList, "-please select item-", new { className = "unselected" })%> </td>
<td><%= Html.ValidationMessage("cat.parent_id")%> </td>
</tr>
<%
if (Session["TempFolder"] == null)
{
for (int i = 1; i < 6; i++)
{ %>
<tr>
<td> <%=Html.Label("Shot "+i.ToString()) %> </td>
<td><input type="file" id="image_<%= i.ToString() %>" name="image_<%= i.ToString() %>" /></td>
</tr>
<% }
}%>
<tr>
<td><input type="submit" value="save"/></td>
</tr>
</table>
</form>
</div>
用于部分类的代码在这里
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.Linq;
using System.Web;
using System.IO;
using System.Configuration;
using xVal.ServerSide;
using System.Web.Mvc;
using PitchPortal.Core.Repositories;
using System.Web.Script.Serialization;
using System.ComponentModel.DataAnnotations;
using PitchPortal.Core.Extensions;
namespace PitchPortal.Core
{
[MetadataType(typeof(DocumentMetadata))]
public partial class Document : IPostedFile
{
IRepository<FileType> IFiletypeRepository = new Repository<FileType>(new DataContextProvider(new ConnectionStringProvider(ConfigurationManager.AppSettings["ConnectionString"])));
static ILoggingService logger = Microsoft.Practices.ServiceLocation.ServiceLocator.Current.GetInstance<ILoggingService>();
public int DownloadCounter
{
get
{
return this.Downloads1.Count;
}
}
[ScriptIgnore]
public bool IsNewDocument
{
get { return this.document_id<1; }
}
public string clientClassPath
{
get { return "DocumentVO"; }
}
public string VersionGuid
{
get;
set;
}
[ScriptIgnore]
public virtual HttpPostedFileBase PostedFile
{
get;
set;
}
[ScriptIgnore]
public string BasePath
{
get
{
return PathExtensions.Build(new string[] { ConfigurationManager.AppSettings["Root"], Category1.GetFamilyTreePath(), title });
}
}
}
}
解决方案
您忘了:
<%= Html.ClientSideValidation("doc", typeof(Document))
.UseValidationSummary("validationSummary") %>
和把你<%= Html.ValidationSummary() %> bettween tags <div id="validationsummary">and </div>
不隶属于 StackOverflow