2012-06-08 2 views
3

Вопрос - это само название. Я новичок в MVC, и теперь я слежу за самообучением. Пожалуйста, дайте мне ответ, который ясен для более свежего MVC. Благодарю.В MVC какая разница между частичным видом и строго типизированным видом?

+2

Почему отрицательный результат я искал в Google. Но я не мог понять. :( – kbvishnu

ответ

9

Частичный вид - это не что иное, как «кусок» Html, который вы можете хранить в отдельном файле, который можно использовать в других представлениях. Подобно UserControls в ASP.NET WebForms.

сильно типизированных означает, что он имеет ViewModel, связанный с ним, что контроллер переходит к нему, и все элементы этой точки зрения можно использовать те свойства ViewModel

Вы можете сильно набрали партиалы, а также. Это означает, что часть Html требует конкретных данных, поэтому вы ее в определенной ViewModel

Вот пример сильно типизированных

@model SomeViewModel 

...// all the html comes after 

мнение, что не сильно типизированных не имеет @model SomeViewModel линию

Вот пример действия контроллера, который делает нормальный вид без ViewModel

public ActionResult Index() { 
    return View(); 
} 

Вот один, который оказывает сильно типизированных

public ActionResult Index() { 
    var model = new SomeViewModel(); 
    return View(model); 
} 

И вид делает использование этого ViewModel, имея @model SomeViewModel в верхней части файла.

Так что теперь вид имеет ViewModel я могу отобразить элементы, которые связаны с ViewModel как

@Html.TextBoxFor(m => m.FirstName) 
@Html.CheckBoxFor(m => m.IsAwesome) 

Так любые данные, введенные в эти поля привязанных к ViewModel. Когда пользователь нажимает кнопку отправки, те введенные значения отправляются обратно на сервер.

Как я уже говорил, частичный вид является многоразовой частью Html. Так что в том же взгляде я могу добавить в свою частичку. Скажем, у меня есть частичное представление, содержащее стандартный бит Html, что я хочу, чтобы повторно использовать во всем моем сайте, как Footer

Я могу создать .cshtml файл и поместить его внутри

<div> footer text here</div> 

И затем включите его в любой вид, не имеет значения, сильно ли он напечатан или нет, он просто многократно используется Html

@model SomeViewModel 

@Html.TextBoxFor(m => m.FirstName) 
@Html.CheckBoxFor(m => m.IsAwesome) 

{@Html.RenderPartial("MyFooter")} 
+0

Спасибо за ответ. В чем же преимущество? Может ли немного объяснить немного? – kbvishnu

+0

@VeeKeyBee Это действительно вопрос «учебник». Вы пытались найти google для своей проблемы? –

+0

@VeeKeyBee Я просто попытался google, и первым результатом был ответ: http://www.google.com/#hl=ru&output=search&sclient=psy-ab&q=What+is+the+difference+between+a+partial+view+and+ а + сильно + набрано + частичный вид + в + ASP.NET + MVC & OQ = Что + такое + разницу + + между + а + парциальным + видом + и + а + сильно + типизированного + частичного видом + + в + ASP. NET + MVC и водн = е & АКИ = & акль = & gs_l = hp.3 ... 936.13577.0.13894.98.69.1.21.21.0.150.4782.59j10.69.0 ... 1.0.4ptEDgYwJtg & = 1 АТС и БАВ = on.2, or.r_gc.r_pw. r_qf., cf.osb & fp = 3fbf9333af451b8d & biw = 1920 & bih = 979 –

Смежные вопросы