Nishant.Chauhan80 Ответов: 0

Ошибка "элемент модели, переданный в словарь, имеет тип 'system.collections.generic.list"


Мой код контроллера

public class AboutUsController : Controller
    {
       
        public ActionResult Index()
        {

            CMSAboutus dbhandle = new CMSAboutus();
            ModelState.Clear();
            return View(dbhandle.GetAboutTitlepage().ToList());
}


My Class 


public List<CMSAboutus> GetAboutTitlepage()
       {
           connection();
           List<CMSAboutus> studentlist = new List<CMSAboutus>();

           SqlCommand cmd = new SqlCommand("GetAboutpagetitle", con);
           cmd.CommandType = CommandType.StoredProcedure;
         //  cmd.Parameters.AddWithValue("@ID", smodel.id);
           SqlDataAdapter sd = new SqlDataAdapter(cmd);
           DataTable dt = new DataTable();

           con.Open();
           sd.Fill(dt);
           con.Close();

           foreach (DataRow dr in dt.Rows)
           {
               studentlist.Add(
                   new CMSAboutus
                   {
                       // Id = Convert.ToInt32(dr["Id"]),
                       Section_Title = Convert.ToString(dr["Section_Title"]),
                       Title_desc = Convert.ToString(dr["Title_desc"]),

                   });
           }
           return studentlist;
       }




индексированное представление


<pre>@using GlobalxVisa_Immigration.Areas.Admin.Models
@model CMSAboutus

@{
    ViewBag.Title = "Index";
    Layout = "~/Areas/Admin/Views/Shared/_LayoutRegister.cshtml";
}

<div class="container">
    <br />

    <div class="row">
        <div class="modal-content">
            <div class="card-header  bg-primary"><span style="color:white;">About Page Title</span></div>

            <div class="card-body">
               
                    
                        <section>
                            @using (Html.BeginForm("Index", "AboutUs", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
            {
                                @Html.AntiForgeryToken()

                                <h5>
                                    class="fa fa-link">
                                   
                                </h5>

                                <hr />
                                if (Model.GetAboutTitlepage() != null && Model.GetAboutTitlepage().Count > 0)
                                {




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

данные таблицы перейдете к странице cshtml по индексу

Gerry Schmitz

Вы определили свою модель как "класс", но передаете коллекцию. Кроме того, ToList() списка< gt; ничего не делает.

Nishant.Chauhan80

как определить мой код Пожалуйста скажите мне

возвратный вид(dbhandle.GetAboutTitlepage().ToList<>); //ошибка

Gerry Schmitz

Создайте класс, чтобы обернуть его вокруг коллекции, и ссылайтесь на него.

Nishant.Chauhan80

Как Сэр пожалуйста приведите мне какой нибудь пример

F-ES Sitecore

Ваше представление ожидает один элемент, но вы передаете ему список элементов. Мы не можем сказать вам, как это исправить, вам нужно решить, нужно ли ваше представление изменить, чтобы разместить список элементов, или если ваш контроллер должен измениться, чтобы передать только один элемент.

0 Ответов