我是 MVC 的新手,我正在尝试向我的主布局页面添加一个局部 View ,以便我可以在我的应用程序中显示消息。我在解决问题时遇到了一些麻烦:
这是我的布局:
<div class="span12">
<p>
@{Html.RenderAction("Messaging", "Messaging");}
</p>
@RenderBody()
</div>
这是我的消息 Controller :
public ActionResult Messaging()
{
return PartialView(new ViewModels.Messaging()
{
MessageType = Utilities.MessageType.Success,
MessageHeader = "Test",
Message = "this is a test message"
});
}
这是存储在共享文件夹中的名为 _MessagingPartial.cshtml 的部分 View :
@model AWS.PL.ViewModels.Messaging
<span>
Model.Message
</span>
这是我的 ViewModel:
public class Messaging
{
public Utilities.MessageType MessageType { get; set; }
public string MessageHeader { get; set; }
public string Message { get; set; }
}
我收到错误消息“未找到部分 View 消息”。部分 View 应该称为 Messanging.cshtml 还是我从根本上弄错了?
非常感谢任何帮助。
谢谢, 威尔基。
最佳答案
Here is my partial view called _MessagingPartial.cshtml
您的部分 View 应称为 Messaging.cshtml
因为这是呈现它的 Controller 操作的名称。
如果要呈现自定义部分名称,请确保明确指定:
public ActionResult Messaging()
{
var model = new ViewModels.Messaging
{
MessageType = Utilities.MessageType.Success,
MessageHeader = "Test",
Message = "this is a test message"
};
return PartialView("_MessagingPartial", model);
}
如果部分位于某个非标准位置,您还可以指定它的完整路径:
return PartialView("~/Views/FooBar/Baz/_MessagingPartial.cshtml", model);
关于asp.net-mvc - MVC 局部 View 不呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17212238/