Создать ссылку на странице с веб-адресом, хранящимся в базе данных - PullRequest
1 голос
/ 10 марта 2010

Кажется, это должно быть легко, но я не могу понять это. Все мои поиски в Google приводят меня к ссылкам на базы данных, что я не хочу делать. Я полный веб-разработчик, новичок.

Я примерно следовал руководству по NerdDinner при создании моего веб-приложения. Одним из моих сохраненных полей является веб-адрес. На страницах «Указатель» и «Сведения», когда я отображаю информацию из своей записи, я хочу, чтобы веб-адрес был активной ссылкой на сайт.

В настоящее время отображается как:

<%= Html.Encode(Model.Subcontract.company1.website) %>

Ответы [ 3 ]

1 голос
/ 10 марта 2010

Попробуйте это:

<a href="<%= Html.Encode(Model.Subcontract.company1.website) %>"><%= Html.Encode(Model.Subcontract.company1.website) %></a>

или

<a href="<%= Html.Encode(Model.Subcontract.company1.website) %>">Company website</a>

Если вы используете DataAnnotations, вы можете прочитать о DataTypeAttribute. Если вы украсите свойство этим свойством с типом данных EmailAddress и используете помощник DisplayFor, вы получите аналогичный эффект.

0 голосов
/ 25 марта 2010

Вы можете создать два метода расширения для вспомогательного класса HTML, который генерирует ссылку:

public static MvcHtmlString HtmlLink(this HtmlHelper html, string url, string text)
{
    return HtmlLink(html, url, text, null);
}

public static MvcHtmlString HtmlLink(this HtmlHelper html, string url, string text, object htmlAttributes)
{
    TagBuilder tb = new TagBuilder("a");
    tb.InnerHtml = text;
    tb.MergeAttributes(new RouteValueDictionary(htmlAttributes));
    tb.MergeAttribute("href", url);
    return MvcHtmlString.Create(tb.ToString(TagRenderMode.Normal));
}

Тогда вы можете просто сделать это:

<%= Html.HtmlLink(Model.Subcontract.company1.website, Model.Subcontract.company1.website) %>
0 голосов
/ 10 марта 2010

То есть вы просто хотите, чтобы информация, возвращаемая Model.Subcontract.company1.website, была кликабельной? Если это так, вы можете просто записать эту информацию в тег привязки следующим образом:

<a href="<%= Html.Encode(Model.Subcontract.company1.website) %>"><%= Html.Encode(Model.Subcontract.company1.website) %></a>

В противном случае вы можете сделать это на событии PageLoad, используя

<asp:HyperLink ID="mylink" runat="server" />

и размещение следующего в событии PageLoad кода:

mylink.NavigateUrl = Model.Subcontract.company1.website
mylink.Text = Model.Subcontract.company1.website
...