thể một số một cho tôi biết làm thế nào tôi có thể xác nhận một url như http://www.abc.comasp.net MVC dataannotation xác nhận url
Trả lời
Nếu, bởi tiêu đề của bài viết của bạn, bạn muốn sử dụng DataAnnotations MVC để xác nhận một chuỗi url, bạn có thể viết một validator tùy chỉnh:
public class UrlAttribute : ValidationAttribute
{
public UrlAttribute() { }
public override bool IsValid(object value)
{
//may want more here for https, etc
Regex regex = new Regex(@"(http://)?(www\.)?\w+\.(com|net|edu|org)");
if (value == null) return false;
if (!regex.IsMatch(value.ToString())) return false;
return true;
}
}
Phil Haack có một hướng dẫn tốt mà đi vượt ra ngoài này và cũng bao gồm thêm mã để xác nhận trên các mặt hàng qua jQuery: http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx
Sử dụng dữ liệu biểu hiện thường xuyên chú thích, và sử dụng một regex như:
http://www\.\w+\.(com|net|edu|org)
Tùy thuộc vào những gì bạn cần xác nhận; bạn có yêu cầu http: hoặc bạn yêu cầu www.? Vì vậy, có thể thay đổi các biểu thức chính quy, nếu không bắt buộc, để:
(http://)?(www\.)?\w+\.(com|net|edu|org)
Hãy để System.Uri làm các việc nâng nặng cho bạn, thay vì một RegEx:
public class UrlAttribute : ValidationAttribute
{
public UrlAttribute()
{
}
public override bool IsValid(object value)
{
var text = value as string;
Uri uri;
return (!string.IsNullOrWhiteSpace(text) && Uri.TryCreate(text, UriKind.Absolute, out uri));
}
}
Nếu bạn đang sử dụng MVC3 RTM, bạn chỉ có thể sử dụng thuộc tính xác thực [URL].
+1 và Rất cám ơn cho liên kết Hữu ích đến bài viết hay., :) – RajeshKdev
tôi sử dụng biểu thức chính quy này cho Internal hoặc URL bên ngoài trên trang web của tôi.
((?:https?\:\/\/|\/.)(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)
Dưới đây là thích hợp đang thuộc tính xác nhận sử dụng trong hệ thống sản:
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class UriValidation : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null || value.ToString() == string.Empty)
{
return true;
}
try
{
Uri result;
if (Uri.TryCreate(value.ToString(), UriKind.RelativeOrAbsolute, out result))
{
if (result.Scheme.StartsWith("http") || result.Scheme.StartsWith("https"))
{
return true;
}
}
}
catch
{
return false;
}
return false;
}
}
Bây giờ (ít nhất là hình ASP.NET MVC 5), bạn có thể sử dụng UrlAttribute và bao gồm máy chủ và khách hàng xác nhận:
[Url]
public string WebSiteUrl { get; set; }
Câu trả lời đúng hiện tại –
Có vấn đề với localhost, bởi vì nó không có tên miền cấp 1 – ASpirin
Uri.IsWellFormedUriString kiểm tra định dạng URL là chính xác và không yêu cầu thoát.
/// <summary>
/// Ensures the property is a valid URL.
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
public class ValidateUrlAttribute : ValidationAttribute
{
public ValidateUrlAttribute()
{
}
public override bool IsValid(object value)
{
// Do not validate missing URLs - people can use [Required] for that.
string text = (value as string) ?? "";
if (text == "")
return true;
return Uri.IsWellFormedUriString(text, UriKind.Absolute);
}
}
- 1. Asp.net mvc dataannotation MaxLength xác nhận không hoạt động
- 2. Mật khẩu DataAnnotation trong ASP.NET MVC 3
- 3. Nhận Html từ Url trong ASP.NET MVC
- 4. ASP.NET MVC: Nhận URL đến RouteTable Routes
- 5. xác nhận một DropDownList trong asp.net MVC
- 6. asp.net mvc phía khách hàng xác nhận
- 7. Xác thực URL DataAnnotations MVC
- 8. ASP.NET MVC Colon trong URL
- 9. Nhận URL đầy đủ của hành động trong ASP.NET MVC
- 10. ASP.NET MVC: cách phân tích chuỗi url để nhận RouteData
- 11. Url ASP.NET MVC và Xác thực Windows Tích hợp IIS
- 12. URL SEO với ASP.NET MVC
- 13. Asp.net MVC 3 xác nhận có điều kiện với DataAnnotations
- 14. Xác nhận Asp.Net MVC - các trường phụ thuộc
- 15. asp.net mvc 3 - ajax gửi mẫu và xác nhận
- 16. MetadataType và xác nhận khách hàng trong ASP.NET MVC 2
- 17. ASP.NET MVC - Có nút xác nhận với Biểu mẫu
- 18. ASP.NET MVC PartialView không phát ra đánh dấu xác nhận
- 19. ASP.NET MVC 3 unobtrusive xác nhận, trình và TinyMCE
- 20. ASP.NET MVC Xác nhận của ViewState MAC thất bại
- 21. ASP.NET MVC 4 - Xác nhận Clientside không hoạt động
- 22. ASP.NET: Nhận URL đích * thực *
- 23. ASP.NET MVC: ActionLink vs bare url
- 24. ASP.NET MVC Routing/SEO Friendly URL
- 25. ASP.NET MVC nhận máy chủ hiện tại
- 26. Url helper cho url đầy đủ trong asp.net MVC-3
- 27. Xác thực đơn giản ASP.Net MVC 1.0
- 28. Yêu cầu xác thực - ASP.NET MVC 2
- 29. client-side chuyến đi xác nhận trên DataAnnotation Phạm vi thuộc tính
- 30. ASP.NET MVC Url.Action trong JQuery không được nhận dạng
Ý của bạn là 'xác thực', xác thực cho những gì? Là một URL hợp lệ? Là trang web thực sự có thể truy cập? Xác nhận màu sắc? – Lazarus
Tôi đã xác định mẫu http://www.abc.com – maztt