2017-02-06 6 views
3

Я хочу отображать имена мобильных телефонов рядом с флажками. Следовательно, я использовал приведенный ниже код с EditorForModel, но то, что он делает только в . Я не понимаю, почему он отображает 12 вместо имен мобильных телефонов.Невозможно отобразить данные с помощью утилиты EditorFoModel html в MVC

Я использовал ADO.NET модель сущностей для создания класса модели из таблицы базы данных Mobile .so У меня есть класс модели с именем Mobile.cs в

namespace MvcDropdown.Models 
    { 
    using System; 
    using System.Collections.Generic; 

    public partial class Mobile 
    { 
     public int Model { get; set; } 
     public string Type { get; set; } 
     public string Cost { get; set; } 
     public Nullable<bool> IsSelected { get; set; } 
    } 
} 

И в HomeController, у меня есть метод действия в качестве

public ActionResult checkboxfun() 
     { 
      GadgetsContext gc = new GadgetsContext(); 
      return View(gc.Mobiles); 
     } 

Теперь я использовал шаблон редактора, назвав его как Мобильный, как показано ниже.

@model MvcDropdown.Models.Mobile 

@Html.HiddenFor(m=>m.Model) 
@Html.HiddenFor(m=>m.Type) 

@Html.EditorFor(m=>m.IsSelected) 
@Html.DisplayFor(m=>m.Type) 

И у меня вид checkboxfun У меня есть следующий код.

@model IEnumerable<MvcDropdown.Models.Mobile> 

@using(Html.BeginForm()) 
{ 
@Html.EditorForModel()  
    <br /> 
    <input type="submit" value="submit" /> 
} 

Теперь я не могу просмотреть данные из базы данных.

+2

это вы шаблон редактор с именем 'Mobile.cshtml' и находится в'/Просмотров/Shared/EditorTemplates'? –

+0

Какая ошибка у вас получить? В вашем шаблоне редактора используется 'MvcDropdown.Models.Mobile' в качестве модели, но на странице просмотра используется' IEnumerable '. Также, если 'Mobiles' является' DbSet' для 'Mobile', вы можете попробовать вернуть коллекцию' IEnumerable': 'return View (gc.Mobiles.ToList());' –

+0

@TetsuyaYamamoto. 'EditorForModel()' принимает как единственный объект, так и коллекцию, а '.ToList()' не требуется –

ответ

0

Ваших генерации 1 2, потому что метод не находит шаблон согласования, и по умолчанию будет визуализация юдоли первого свойства модели (в вашем случае у вас есть 2 вещи в коллекции с Model = 1 и Model = 2.

Ваш шаблон должен быть назван Mobile.cshtml совпадать с именем класса, и располагаться либо в /Views/Shared/EditorTemplates или /Views/yourControllerName/EditorTemplates (в вашем случае /Views/Home/EditorTemplates) папку