2

Html 5 の URL 検証では、デフォルトでhttp://またはhttps://が想定されます。カスタム正規表現を使用してパターン属性を追加しようとしましたが、type="url" と共に追加できませんでした。

正規表現をオーバーライドして http://またはhttps://をオプションにするオプションはありますか?

4

2 に答える 2

2

「http://」、「https://」、または「www」を含まない URL を検証する次の正規表現を試してください。

//Validates url without "http://", "https://" or "www"
[RegularExpression(@"((www\.|(http|https|ftp|news|file|)+\:\/\/)?[&#95;.a-z0-9-]+\.[a-z0-9\/&#95;:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)])", ErrorMessage = "Please check the url")]

お役に立てれば...

于 2015-03-25T15:06:01.527 に答える
0
  1. 「DataAnnotationsExtensions」ライブラリ ( mvc4 url​​ validation ) を使用できます。

しかし、古すぎて、最新の MVC バージョンでどのように動作するかわかりません。

  1. 私の解決策。モデルの検証ではありません。URL をハイパーリンクとして表示します:

モデル:

public class MyClass
    {
        public int Id { get; set; }
        public string WebSite { get; set; }
    }

意見:

@foreach (var item in Model) {
    <tr>
        <td>
            <a target="_blank" href="http://@Html.DisplayFor(modelItem => item.WebSite)">@Html.DisplayFor(modelItem => item.WebSite)</a>
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr> }
于 2015-10-14T03:58:56.737 に答える