manjiriV Ответов: 1

@Html. labelfor(model => model. statename, htmlattributes: new { @class = " control-label col-md-2" })


будет печально, если кто-нибудь сможет сказать, откуда взялась эта "модель" = "модель".StateName "идет, а также о htmlAttributes: new { @class =" control-label col-md-2" }

автоматически генерируется в файле. cshtml с помощью entity framework
@Html.LabelFor(model => model.StateName, htmlAttributes: new { @class = "control-label col-md-2" })



Что я уже пробовал:

автогенерированный код :
@Html. LabelFor(model = & gt; model.StateName, htmlAttributes: new { @class = " control-label col-md-2" })

1 Ответов

Рейтинг:
4

njammy

Следующее направление:
@class = " control-label col-md-2"

это" bootstrap " селекторы. (классы таблиц стилей bootstrap.css)


"модель = & gt; модель.StateName"
... это свойство объекта модели. Ваш класс объектов модели будет определен в верхней части cshtml как "@model myModel " или что-то в этом роде.


manjiriV

нджамми такс для ответа это действительно стоит понять. и у меня есть это в верхней части моего файла cshtml
--------------------------------------------------------------------------
@model CrudeOperationsDemo.Модели.Город

@{
Видовая сумка.Title = " Создать";
}

---------------------------------
is " model = & gt; model.StateName " связан с @model CrudeOperationsDemo.Модели.Город ? если
я пишу @model CrudeOperationsDemo. mod1.Город тогда я должен изменить "mod1 => mod1. StateName" это так???
еще раз спасибо за ответ

njammy

Нет, это не так.

Позвольте мне разбить его вот так:
CrudeOperationsDemo.Модели.Город
"CrudeOperations" - это имя сборки и ссылка.
"Models" <-- это пространство имен "Models", то есть многие классы могут иметь одно и то же пространство имен.
"Город" - это название класса. Итак, " модель = & gt; модель.StateName " ссылается на экземпляр класса City.

"модель = & gt; модель.StateName"
"model" <-- MVC внутренне создает экземпляр объекта класса City, и это то же самое, что делать:
Модель города = Новый город();


Надеюсь, это поможет.

manjiriV

да.. теперь я понимаю."City model=new City ()" это многое прояснило.

CrudeOperationsDemo - это мое название проекта, например WebAppliction1. это то, на что вы ссылаетесь в нижеследующих строках

----------------
"CrudeOperations" - это имя сборки и ссылка.
"Models" <-- это пространство имен "Models", то есть многие классы могут иметь одно и то же пространство имен.
"Город" в <-- это название класса
--------------------------------------------
спасибо, что он мне очень помог.

manjiriV

имя сборки и ссылка связаны с именем проекта? верно?

njammy

Правильно, каждый файл cshtml должен содержать ссылку на класс модели (если таковой используется или требуется).

Рассмотрим обычный класс C#, он будет выглядеть так :
- используя грубые операции.Models; / / namespace / assembly reference для случаев, когда класс, который вы пишете, находится в другом пространстве имен.
пространство имен WebApp1
{
открытый класс TestClass1()
{
public City MyCity {get; set;}
общественные TestClass1()
{
MyCity = новый город
{
StateName = " Флорида"
};
}
}
}"

njammy

Имя проекта-это просто способ visual studios включить файлы кода в один проект.
Имя проекта может отличаться от имени сборки и пространства имен. Каждый проект может иметь только одно имя сборки, но он может содержать много пространств имен.

Если вы щелкните правой кнопкой мыши на имени проекта и свойствах, то увидите под страницей " приложение "" имя сборки "и"пространство имен по умолчанию".
Имя сборки: как будет называться библиотека dll при сборке.
Пространство имен по умолчанию: при добавлении нового класса Visual Studio автоматически назовет класс внутри пространства имен по умолчанию. Измените его, если вы предпочитаете разделять свой код на домены или группы.

видишь https://msdn.microsoft.com/en-us/library/ad7d6w76.aspx

manjiriV

да ... это было самое лучшее решение ... большое спасибо ....

njammy

В проекте MVC по умолчанию есть файл web.config внутри папки Views.
Вы также можете добавить этот параметр: "< add namespace= " CrudeOperations.Модели " >"

&ЛТ;система.веб.веб-страницы.бритвы&ГТ;
&ЛТ;хозяин factorytype="системы.Веб.В MVC.MvcWebRazorHostFactory, Системы.Веб.В MVC версии=5.2.3.0, культуры=нейтральный, значения PublicKeyToken=31BF3856AD364E35"&ГТ;&ЛТ;/узла&ГТ;
< pages pageBaseType= "System.Web.Mvc. WebViewPage">
& lt;пространства имен>
&ЛТ;добавить пространство имен="системы.Веб.В MVC"&ГТ;&ЛТ;/добавить&ГТ;
&ЛТ;добавить пространство имен="системы.Веб.В MVC.Аякс"&ГТ;&ЛТ;/добавить&ГТ;
< добавить пространство имен="System.Web.Mvc.Html"> & lt; / добавить>
&ЛТ;добавить пространство имен="системы.Веб.Маршрутизации"&ГТ;&ЛТ;/добавить&ГТ;
< add namespace= " CrudeOperations.Модели " > & lt; / добавить>
< / пространства имен>
< / страницы>
&ЛТ;/система.веб.веб-страницы.бритвы&ГТ;

Затем это позволяет упростить ссылку в cshtml (если она наследует этот web.config) следующим образом

@модель города

Надеюсь, это поможет.

manjiriV

да..он работал... :)