Я использую DataAnnotations для включения проверки на стороне клиента в проекте ASP.NET MVC 2.У меня проблема с тем, что мое регулярное выражение проверки URL проходит мой модульный тест, но на реальном веб-сайте оно не проходит.
Модель
[RegularExpression(UrlValidation.Regex, ErrorMessage = UrlValidation.Message)]
public string Url { get; set; }
Regex = "(([\w]+:)?//)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?"
Сообщение = "Неверный URL"
Просмотр
<div class="editor-label">
<%: Html.LabelFor(model => model.Url) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Url) %>
<%: Html.ValidationMessageFor(model => model.Url) %>
</div>
Результат с URL = http://www.chicagoshakes.com/main.taf?p=7,8
Пройденный модульный тест
[Test]
public void GetVarUrlPasses()
{
var url = "http://www.chicagoshakes.com/main.taf?p=7,8";
var regex = new Regex(UrlValidation.Regex);
Assert.IsTrue(regex.IsMatch(url));
}
У кого-нибудь есть идеи?почему это проходит модульное тестирование, но не проходит, когда я проверяю представление в браузере?