Подтвердить что ты не робот

Как получить данные модели из ViewResult в ASP.NET MVC RC1?

Учитывая следующий класс контроллера:

public class ProjectController : Controller
{
    public ActionResult List()
    {
        return View(new List<string>());
    }
}

Как я могу получить ссылку на объект модели в следующем unit test?

public class ProjectControllerTests
{
    private readonly ProjectController controller;

    public ProjectControllerTests()
    {
        controller = new ProjectController();
    }

    [Fact]
    public void List_Action_Provides_ProjectCollection()
    {
        var result = (ViewResult)controller.List();

        Assert.NotNull(result);
    }
}

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

Мои знания ASP.NET MVC довольно ограничены, но я предполагаю, что я не настраиваю контроллер с правильным контекстом.

Любые предложения?

4b9b3361

Ответ 1

Try:

result.ViewData.Model

Надеюсь, что это поможет.

Ответ 2

В версии Release Candidate структуры Asp.Net Mvc модель предоставляется через свойство "Модель" объекта ViewResult. Вот более точная версия вашего теста:

[Fact]
public void List_Action_Provides_ProjectCollection()
{
    //act
    var result = controller.List();

    //assert
    var viewresult = Assert.IsType<ViewResult>(result);
    Assert.NotNull(result.ViewData.Model);
    Assert.IsType<List<string>>(result.ViewData.Model);
}