Evil rising
Evil rising

Reputation: 442

ViewViewdata.Model; what model does?

ViewData.Model

i know that Viewdata contains the data that has been returned by view via

return view(//data);

but what does this .Model represents ?

Controller:

using Testing_linq.Models;

namespace Testing_linq.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Welcome to ASP.NET MVC!";
            var DataContext = new RegistrationDataContext();
            var Registration = DataContext.SelectRegistration_sp();

            return View(Registration);
        }

View:

<table>
@foreach(SelectRegistration_spResult reg in (IEnumerable<Object>)ViewData.Model)
{
    <tr>
     <td>@reg.userEmail </td>
    </tr>
}
</table>

I'm using LInq to Sql classes in model.

Upvotes: 0

Views: 37

Answers (1)

Moo-Juice
Moo-Juice

Reputation: 38825

The Model represents whatever dynamic information is required to render the page, and is something you provide to your view. For example, if you were going to create a View that shows a person's First name and Last name, you might come up with the following model:

public sealed class PersonViewModel
{
    public string FirstName {get; set; }
    public string LastName {get; set; }
}

It's preferable to use strongly-typed views, so the first line in your .cshtml file would be:

@model MyNameSpace.PersonViewModel

And when your controller returns the view, you would pass what needs to be rendered in to it:

 public ActionResult Index()
 {
     return View(new PersonViewModel() { FirstName = "Moo", LastName = "Juice" });
 }

ViewData.Model refers to the instance of the PersonViewModel passed in, and is accessed in your view via Model shortcut:

 <body>
     <p>
         Hello @Model.FirstName !!
     </p>
 </body>

Upvotes: 4

Related Questions