Telegram Group & Telegram Channel
День триста пятьдесят четвёртый. #ЗаметкиНаПолях
ASP.NET MVC 5.
Представления. Начало
Большинство методов действия контроллера должны отображать динамическую информацию в формате HTML. После того, как контроллер выполнил соответствующую логику для запрошенного URL, он делегирует отображение результата представлению.
В отличие от файловых веб-платформ сами представления непосредственно недоступны. Нельзя задать в браузере путь к представлению и сделать так, чтобы оно отобразилось. Вместо этого представление всегда отображается контроллером, который передаёт представлению данные для отображения.

В ASP.NET представления — это файлы .cshtml, в которых используется C# в разметке Razor. По соглашению представления размещаются в папке Views, сгруппированы по папкам соответственно контроллеру, к которому они относятся, и называются по имени метода действия. Например, представления, относящиеся к контроллеру HomeController, размещаются в папке Views/Home. Представления для метода действия Index() называется Index.cshtml, для метода About()About.cshtml. Общие представления, которые используются несколькими контроллерами, а также макеты страниц размещаются в папке Views/Shared.

Представления, как правило, возвращаются из методов действия в виде объекта ViewResult. Можно создавать и возвращать объект напрямую, однако обычно используется вспомогательный метод View:
public class HomeController : Controller {
public ActionResult About() {
return View();
}
}
Соглашение об именовании помогает системе найти нужное представление в файле Views/Home/About.cshtml. Методу View можно передать строковый параметр с указанием пути к нужному представлению, а также объект модели, данные которой нужно отобразить.

ViewBag и ViewData
Помимо модели, для передачи небольших объёмов данных в представление из метода действия используется специальный словарь ViewData:
ViewData["CurrentTime"] = DateTime.Now;
С введением динамических типов в C#4 стало возможно использовать динамическую обёртку ViewBag, в котором можно задавать значения как свойства:
ViewBag.CurrentTime = DateTime.Now;
Этот код эквивалентен предыдущему, и технически ни один вариант не имеет преимущества перед другим. Однако в некоторых случаях ViewData может иметь преимущество, например, следующий код не выполнится из-за динамической природы ViewBag: @Html.TextBox("name", ViewBag.Name)
Здесь нужно либо использовать ViewData["Name"], либо приводить значение к нужному типу: (string)ViewBag.Name.

Строго типизированные представления
Если в представление нужно передать модель, то создаётся строго типизированное представление. Оно отличается от обычного указанием в заголовке файла представления типа модели через декларацию @model. Следующая декларация объявляет строго типизированное представления для списка товаров:
@model IEnumerable<Product>
Это позволяет компилятору проверять типы данных модели, в отличие от передачи данных через ViewBag/ViewData, а разработчикам использовать преимущества IntelliSense в представлении.

Модели представления
Иногда в представлении нужно отобразить дополнительную информацию, помимо данных из модели домена. Например, в представлении корзины покупок помимо списка товаров нужно отобразить общую сумму покупки и сообщение (допустим, информацию о доставке).
Есть два пути добиться этого: использовать ViewBag/ViewData, либо создать специализированный класс модели представления, содержащий как список продуктов, так и необходимые дополнительные свойства:
public class ShoppingCartViewModel {
public IEnumerable<Product> Products { get; set; }
public decimal CartTotal { get; set; }
public string Message { get; set; }
}
Как правило, лучше использовать второй вариант. Можно рассматривать модель представления как модель, существующую только для передачи информации в представление.

Источник: Jon Galloway “Professional ASP.NET MVC 5”. – John Wiley & Sons Inc., 2014. Глава 3.



tg-me.com/NetDeveloperDiary/422
Create:
Last Update:

День триста пятьдесят четвёртый. #ЗаметкиНаПолях
ASP.NET MVC 5.
Представления. Начало
Большинство методов действия контроллера должны отображать динамическую информацию в формате HTML. После того, как контроллер выполнил соответствующую логику для запрошенного URL, он делегирует отображение результата представлению.
В отличие от файловых веб-платформ сами представления непосредственно недоступны. Нельзя задать в браузере путь к представлению и сделать так, чтобы оно отобразилось. Вместо этого представление всегда отображается контроллером, который передаёт представлению данные для отображения.

В ASP.NET представления — это файлы .cshtml, в которых используется C# в разметке Razor. По соглашению представления размещаются в папке Views, сгруппированы по папкам соответственно контроллеру, к которому они относятся, и называются по имени метода действия. Например, представления, относящиеся к контроллеру HomeController, размещаются в папке Views/Home. Представления для метода действия Index() называется Index.cshtml, для метода About()About.cshtml. Общие представления, которые используются несколькими контроллерами, а также макеты страниц размещаются в папке Views/Shared.

Представления, как правило, возвращаются из методов действия в виде объекта ViewResult. Можно создавать и возвращать объект напрямую, однако обычно используется вспомогательный метод View:

public class HomeController : Controller {
public ActionResult About() {
return View();
}
}
Соглашение об именовании помогает системе найти нужное представление в файле Views/Home/About.cshtml. Методу View можно передать строковый параметр с указанием пути к нужному представлению, а также объект модели, данные которой нужно отобразить.

ViewBag и ViewData
Помимо модели, для передачи небольших объёмов данных в представление из метода действия используется специальный словарь ViewData:
ViewData["CurrentTime"] = DateTime.Now;
С введением динамических типов в C#4 стало возможно использовать динамическую обёртку ViewBag, в котором можно задавать значения как свойства:
ViewBag.CurrentTime = DateTime.Now;
Этот код эквивалентен предыдущему, и технически ни один вариант не имеет преимущества перед другим. Однако в некоторых случаях ViewData может иметь преимущество, например, следующий код не выполнится из-за динамической природы ViewBag: @Html.TextBox("name", ViewBag.Name)
Здесь нужно либо использовать ViewData["Name"], либо приводить значение к нужному типу: (string)ViewBag.Name.

Строго типизированные представления
Если в представление нужно передать модель, то создаётся строго типизированное представление. Оно отличается от обычного указанием в заголовке файла представления типа модели через декларацию @model. Следующая декларация объявляет строго типизированное представления для списка товаров:
@model IEnumerable<Product>
Это позволяет компилятору проверять типы данных модели, в отличие от передачи данных через ViewBag/ViewData, а разработчикам использовать преимущества IntelliSense в представлении.

Модели представления
Иногда в представлении нужно отобразить дополнительную информацию, помимо данных из модели домена. Например, в представлении корзины покупок помимо списка товаров нужно отобразить общую сумму покупки и сообщение (допустим, информацию о доставке).
Есть два пути добиться этого: использовать ViewBag/ViewData, либо создать специализированный класс модели представления, содержащий как список продуктов, так и необходимые дополнительные свойства:
public class ShoppingCartViewModel {
public IEnumerable<Product> Products { get; set; }
public decimal CartTotal { get; set; }
public string Message { get; set; }
}
Как правило, лучше использовать второй вариант. Можно рассматривать модель представления как модель, существующую только для передачи информации в представление.

Источник: Jon Galloway “Professional ASP.NET MVC 5”. – John Wiley & Sons Inc., 2014. Глава 3.

BY .NET Разработчик


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/NetDeveloperDiary/422

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

However, analysts are positive on the stock now. “We have seen a huge downside movement in the stock due to the central electricity regulatory commission’s (CERC) order that seems to be negative from 2014-15 onwards but we cannot take a linear negative view on the stock and further downside movement on the stock is unlikely. Currently stock is underpriced. Investors can bet on it for a longer horizon," said Vivek Gupta, director research at CapitalVia Global Research.

Should You Buy Bitcoin?

In general, many financial experts support their clients’ desire to buy cryptocurrency, but they don’t recommend it unless clients express interest. “The biggest concern for us is if someone wants to invest in crypto and the investment they choose doesn’t do well, and then all of a sudden they can’t send their kids to college,” says Ian Harvey, a certified financial planner (CFP) in New York City. “Then it wasn’t worth the risk.” The speculative nature of cryptocurrency leads some planners to recommend it for clients’ “side” investments. “Some call it a Vegas account,” says Scott Hammel, a CFP in Dallas. “Let’s keep this away from our real long-term perspective, make sure it doesn’t become too large a portion of your portfolio.” In a very real sense, Bitcoin is like a single stock, and advisors wouldn’t recommend putting a sizable part of your portfolio into any one company. At most, planners suggest putting no more than 1% to 10% into Bitcoin if you’re passionate about it. “If it was one stock, you would never allocate any significant portion of your portfolio to it,” Hammel says.

telegram from jp


Telegram .NET Разработчик
FROM USA