Tuesday, 6 August 2013

Receiving "The name 'ModelName' does not exist in the current context' when the model is imported ASP.NET MVC 4'

Receiving "The name 'ModelName' does not exist in the current context'
when the model is imported ASP.NET MVC 4'

Can someone explain to me why i get the following error: The name
'Messanger' does not exist in the current context from IIS server when i
have imported the class and even Visual Studio doesn't detect an error?
xxxxx.Models.Messanger:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace XXXX.Models
{
public class Messanger
{
private static List<string> Success = new List<string>();
private static List<string> Info = new List<string>();
private static List<string> Warning = new List<string>();
public static void addSuccess(string message)
{
Success.Add(message);
}
public static void addSuccess(List<string> messages)
{
Success.AddRange(messages);
}
public static void addInfo(string message)
{
Info.Add(message);
}
public static void addInfo(List<string> messages)
{
Info.AddRange(messages);
}
public static void addWarning(string message)
{
Warning.Add(message);
}
public static void addWarning(List<string> messages)
{
Warning.AddRange(messages);
}
public static List<string> getSuccess()
{
return Success;
}
public static List<string> getInfo()
{
return Info;
}
public static List<string> getWarning()
{
return Warning;
}
public static void addMessage(IMessageType message)
{
if (message.getType() == "success")
{
Success.Add(message.getMessage());
}
else if (message.getType() == "warning")
{
Warning.Add(message.getMessage());
}
else Info.Add(message.getMessage());
}
public static void addMessage(List<IMessageType> messages)
{
foreach (IMessageType message in messages)
{
addMessage(message);
}
}
public static int getMessageCount()
{
return Success.Count + Info.Count + Warning.Count;
}
public static bool ThereAreMessages()
{
return (getMessageCount() > 0);
}
}
public interface IMessageType
{
string getType();
string getMessage();
}
public abstract class Message : IMessageType
{
private string Message;
private string Type;
public Message(string message, string type)
{
this.Message = message;
this.Type = type;
}
public string IMessageType.getType()
{
return Type;
}
public string IMessageType.getMessage()
{
return this.Message;
}
}
public class SuccessMessage : Message
{
public new SuccessMessage(string message)
: base(message, "success")
{
}
}
public class InfoMessage : Message
{
public new InfoMessage(string message)
: base(message, "info")
{
}
}
public class WarningMessage : Message
{
public new WarningMessage(string message)
: base(message, "warning")
{
}
}
}
and my _Layout.cshtml Razor view is:
@XXXXX.Models
<!DOCTYPE html>
<html>
<head>
<title>XXXXX - @ViewBag.Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="@Url.Content("/css/bootstrap.css")" rel="stylesheet"
media="screen">
<link href="@Url.Content("/css/bootstrap-glyphicons.css")"
rel="stylesheet">
</head>
<body>
<div class="navbar navbar-inverse">
<div class="container">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Project name</a>
<div class="nav-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle"
data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li class="nav-header">Nav header</li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<form class="navbar-form form-inline pull-right" method="post"
action="@Url.Action("Login", "Account", new {ReturnUrl =
ViewBag.ReturnUrl})">
@Html.AntiForgeryToken()
<input type="text" name="UserName" autofocus
placeholder="Username">
<input type="password" placeholder="Password" name="Password">
<input type="hidden" value="true" name="RememberMe">
<button type="submit" class="btn btn-default">Log in</button>
</form>
</div><!--/.nav-collapse -->
</div>
</div>
<div class="container">
@if (Messanger.ThereAreMessages())
{
<div class="row">
<div class="alert alert-danger">
<button type="button" class="close"
data-dismiss="alert">&times;</button>
@foreach (string message in Messanger.getWarning())
{
@message;
}
</div>
</div>
<div class="row">
<div class="alert alert-success">
<button type="button" class="close"
data-dismiss="alert">&times;</button>
@foreach (string message in Messanger.getSuccess())
{
@message;
}
</div>
</div>
<div class="row">
<div class="alert alert-info">
<button type="button" class="close"
data-dismiss="alert">&times;</button>
@foreach (string message in Messanger.getInfo())
{
@message;
}
</div>
</div>
}
@RenderBody()
</div>
<!-- End of content-->
<script src="@Url.Content("/js/jquery-2.0.3.min.js")"></script>
<script src="@Url.Content("/js/bootstrap.js")"></script>
</body>
</html>
I get the error when trying to access
XXXXX.Models.Messanger.ThereAreMessages() at line 49.

No comments:

Post a Comment