Click here to Skip to main content
15,888,984 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i was developed one MVC appication using controller,Model,View

controller prepares data using viewbag and redirected to view.

Model:(Data.cs)
<br />
<br />
using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Web;<br />
<br />
namespace model.Models<br />
{<br />
    public class data<br />
    {<br />
        public int Number { get; set; }<br />
        public string Name { get; set; }<br />
        public string Grade { get; set; }<br />
    }<br />
}<br />
<br />


Controller:(studentController)
<br />
using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Web;<br />
using System.Web.Mvc;<br />
using model.Models;<br />
<br />
namespace model.Controllers<br />
{<br />
    public class studentController : Controller<br />
    {<br />
        //<br />
        // GET: /student/<br />
        public ViewResult register()<br />
        {<br />
            List<string> s1 = new List<string>();<br />
            data d1 = new data() { Number = 1, Name = "varma", Grade = "A" };<br />
            data d2 = new data() { Number = 2, Name = "kumar", Grade = "c" };<br />
            data d3 = new data() { Number = 3, Name = "vasu", Grade = "B" };<br />
            s1.Add("d1");<br />
            s1.Add("d2");<br />
            s1.Add("d3");<br />
            ViewBag.Udata = s1;<br />
            return View();<br />
        }<br />
<br />
        public ActionResult Index()<br />
        {<br />
            return View();<br />
        }<br />
<br />
    }<br />
}<br />
<br />

view:(register.cshtml):
<br />
<br />
@{<br />
    ViewBag.Title = "register";<br />
}<br />
<br />
<h2>register</h2><br />
<br />
@foreach (var item in ViewBag.Udata)<br />
{<br />
    <ul>@item.Name.....@item.Grade</ul><br />
}<br />
<br />


whenever run that task one error will raise

error will be raising in one line that line is

<br />
  <ul>@item.Name.....@item.Grade</ul><br />


error is" string does not contain definition for name"

this is runtime exception.

please help me.Thank u
Posted

1 solution

You've created a list of strings. You've then created three data objects, thrown them away, and then added the names of the local variables as strings to your list.

As a result, the ViewBag.UData property contains a list of string objects, and the item variable in your foreach loop is a string. Since the string type doesn't contain properties called Name or Grade, you get a compiler error.

Change your code to pass a list of data objects instead:
C#
public ViewResult register()
{
    List<data> s1 = new List<data>();
    data d1 = new data() { Number = 1, Name = "varma", Grade = "A" };
    data d2 = new data() { Number = 2, Name = "kumar", Grade = "c" };
    data d3 = new data() { Number = 3, Name = "vasu", Grade = "B" };
    s1.Add(d1);
    s1.Add(d2);
    s1.Add(d3);
    ViewBag.Udata = s1;
    return View();
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900