18 мая 2011 г.

ActionLink в виде картинки, для ASP.Net MVC. Способ №2

Некоторое время назад, я писал о одном способе превращения обычного ActionLink-а в картинку. Метод хороший, и я пользуюсь им до сих пор. Но вот, вчера сам меня нашел еще один способ это сделать.

Итак, наша задача - сделать ActionLink, в котором вместо текста ссылки отображалась бы картинка.
Решение:

<a href="<%= Url.Action("About") %>">
    <img src="/Content/_about.png" alt="About Us" />
</a>

Вот и все. Как по мне, так такой способ даже лучше предыдущего т.к. здесь читаемость кода поднимается в раза 2.

Кроме того, не стоит забывать, что ActionLink на странице преобразовывается в обычную, стандартную ссылку. Поэтому, в принципе, мы даже могли бы напрямую писать в HTML-е что-то типа этого:

<a href="/home/about">
    <img src="/Content/_about.png" alt="About Us" />
</a>

Результат один и тот же.
С передачей параметров здесь проблем также не будет.

Единственное, что для меня пока не понятно, так это - почему советуют не писать так, как мы это сделали в последнем примере (сразу в HTML).

Да и вообще, признаюсь, не знаю где разница в написании строк:

<%= Html.TextBox("txt1") %>
<input type="text" name="txt2" id="txt2" />

если результат на странице будет абсолютно одинаков.

Ну что же, буду разбираться.

11 мая 2011 г.

Передача JSON-данных из представления в контроллер, на ASP.Net MVC

В одном из предыдущих постов (вот здесь) я уже рассматривал способ передачи данных в формате JSON, из контроллера в представление. Тема довольно интересная и полезная. Поэтому, я подумал, что стоит также немного попрактиковаться с обратной передачей данных. Тоесть, из представления в контроллер. Речь идет о случаях, когда, во-первых,  нужно передать в контроллер не одно-два значения, а целый набор, и, во-вторых, - когда все это необходимо сделать (как мы уже очень любим) без перезагрузки страницы. Будем использовать JSON и AJAX.

8 мая 2011 г.

Использование Cookies в ASP.Net MVC

Так же как и в WebForms, в MVC очень просто работать с Cookies.

Думаю, что не стоит рассказывать когда куки используются. Сразу перейдем к коду. Получать cookie можно/нужно так:

HttpCookie cookie = Request.Cookies["cookieName"];



Следовательно, устанавливать cookie в контроллере лучше вот таким образом:

HttpCookie cookie = new HttpCookie("cookieValue");
cookie.Value = model.SomeValue;
cookie.Expires = DateTime.Now.AddHours(1);
this.ControllerContext.HttpContext.Response.Cookies.Add(cookie);

Для удаления cookie-файла, как и раньше, достаточно просто задать в Expires уже прошедшую дату. Типа того: cookie.Expires = DateTime.Now.AddDays(-1d).

6 мая 2011 г.

Изменение Master Page для представления из контроллера, в ASP.Net MVC

В предыдущем посте я писал о том, что иногда приходится использовать вложенные мастер-страницы, или просто несколько главных мастер-страниц. Как мы уже знаем, при создании представления, нужно указать, наследуется ли оно от какой либо, конкретной Master Page. Но оказывается, что принадлежность к мастеру, можно менять из контроллера.

5 мая 2011 г.

Передача данных в Master Page из контроллера ASP.Net MVC

Как бы странно это не было, но иногда все-таки необходимо передавать данные не только в представления, но и в мастер страницы.
Впервые я столкнулся с этим, когда мы начали применять в проекте вложенные Master Pages. Поэтому, сегодня я напишу о том, какой способ передачи данных я для себя нашел.