?
Solved

How to set the View  Name in my controller in MVC

Posted on 2014-03-27
2
Medium Priority
?
608 Views
Last Modified: 2014-03-28
I am creating an application using TDD with MVC 4.  I have a very simple HomeController and Index action that simply returns a View.  This view displays a menu to the user.  Here is the controller code:

HomeController.cs
using System;
using System.Web.Mvc;
using AppCatalog.Models;

namespace AppCatalog.Controllers
{
    public class HomeController : Controller
    {
        [AuthUser(Roles = "IST")]
        public ViewResult Index()
        {
            ViewBag.Title = "Application Catalog";

            return View();
        }

    }
}

Open in new window


Here is the corresponding View:

@{
    <!-- Set the page title text -->
    ViewBag.Label = (string)Session["labeltext"];
    <!-- Set the header [Verbose/Default/None]:
        Verbose = About, Contact, Date
        Default = Date Only
        None = Blank header (see below) -->
    ViewBag.Header = "Default";
    <!-- Display Linkback [Yes/No]:
        NOTE: Supported only with left_box/right_box -->
    ViewBag.Linkback = "Yes";
}

<!-- Content here will be placed in the header -->
@section header {
}

<!-- Menu, or title wrapped in <h2>...</h2> tags -->
@section menu_bar {
				<h2>
                	@ViewBag.Title
				</h2>
}

<!-- Use one_box for applications and one-column content -->
@section one_box {
<h1 style="text-align: center">@ViewBag.Title Menu</h1>

<div class="menu">
    <ul>
        <li>@Html.ActionLink("Database Catalog", "Index", "DBCatalog")</li>
        <li>@Html.ActionLink("User's Guide", "UserGuide", new {controller="Home"}, new { target = "_blank" })</li>
    </ul>
</div>
}

Open in new window


I have a unit test that simply wants to verify the View returned is the Index view but the test is failing.  When I debug the test and look at result.ViewName, it is null.  Here is the unit test:

HomeControllerTest.cs
        [TestMethod]
        public void Index_Get_AsksForIndexView()
        {
            // Arrange
            var controller = new HomeController();

            // Act
            ViewResult result = controller.Index();

            // Assert
            Assert.AreEqual("Index", result.ViewName);
        }

Open in new window


Can someone please tell me how I can verify the Index View is being returned?
0
Comment
Question by:dyarosh
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 52

Accepted Solution

by:
Carl Tawn earned 2000 total points
ID: 39960173
Basically you can't. If you don't specify the view name when returning it (i.e. return View("Index");) then you can't check the name.

However, you shouldn't need to because if you don't specify a view name then the view name is by definition the same as the action name.
0
 

Author Closing Comment

by:dyarosh
ID: 39961314
Thank you.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question