asp.net-mvc - MVC 局部 View 不呈现

标签 asp.net-mvc model-view-controller partial-views

我是 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/

相关文章:

JavaFX - 如何将 FXML 文件注入(inject) Main 的 FXML 按钮?

asp.net-mvc - 用于 ASp.net MVC 的 AJAX 工具包

c# - 如何从 MVC 中的部分页面设置页面标题

asp.net-mvc-3 - MVC3 强类型局部 View 模型绑定(bind)

ruby-on-rails - 如何向 Rails 的部分渲染查找添加 View 路径?

asp.net-mvc - 我可以像使用 xslt-renderings 一样在 Sitecore 中使用 Razor View 吗?

jquery - 如何修复 jQuery.fn.init.jQuery 中未定义的 jquery url.indexOf 函数?

javascript - 在 IE/Firefox 中获取用户磁盘上上传文件的文件路径

asp.net-mvc - 处理 MVC 子操作中的错误

c# - MVC TextBoxFor 和 PasswordFor 的动态 CSS 类