Как отобразить пользовательские свойства объекта на странице просмотра с помощью ASP.NET MVC? - PullRequest
1 голос
/ 07 июня 2010

Я пытаюсь добавить функции ASP.NET MVC (особенно маршрутизацию) в мое уже существующее веб-приложение ASP.NET. Я добавил контроллер и просмотр (страница asp.net).

Теперь я хочу знать, как я могу отобразить детали объекта моего пользовательского класса (например, Пользователь) в представлении? Могу ли я назначить объект в коллекции ViewData и отобразить его в виде? У меня уже есть Datalayer (в ADO.NET), который работает для текущего веб-приложения ASP.NET, поэтому я хочу использовать его.

Я попробовал это в моем контроллере

public ActionResult Index()
    {
        BusinessObject.User objUser = new BusinessObject.User();
        objUser.EmailId = "shyju@company.com";
        objUser.ProfileTitle = "Web developer with 6 yrs expereince";

        ViewData["objUser"] = objUser;
        ViewData["Message"] = "This is ASP.NET MVC!";

        return View();
    }

Как я могу использовать это на странице просмотра для отображения информации о пользователе?

1 Ответ

2 голосов
/ 07 июня 2010

Вы должны передать свой объект как модель представления (или часть модели представления вместе с вашим сообщением) в строго типизированное представление. Затем вы можете просто ссылаться на свойства модели в своем представлении.

public class IndexViewModel
{
    public BusinessObject.User User { get; set; }
    public string Message { get; set; }
}

(или, что еще лучше, только те свойства пользовательского объекта, которые вам действительно нужны)

Контроллер

public ActionResult Index()
{
    BusinessObject.User objUser = new BusinessObject.User();
    objUser.EmailId = "shyju@company.com";
    objUser.ProfileTitle = "Web developer with 6 yrs expereince";

    return View( new IndexViewModel {
         User = objUser,
         Message = "This is ASP.NET MVC!";
    });
}

View

<%@ Page Title="" Language="C#"
    MasterPageFile="~/Views/Shared/Site.Master"
    Inherits="System.Web.MVC.ViewPage<MyWebSite.Models.IndexViewModel>" %>

<%= Html.Encode( Model.User.EmailId ) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...