小编Wil*_*lky的帖子

MVC 部分视图不渲染

我是 MVC 新手,我正在尝试向我的主布局页面添加部分视图,以便我可以在整个应用程序中显示消息。我在解决这个问题时遇到了一些麻烦:

这是我的布局:

<div class="span12">       
<p>
    @{Html.RenderAction("Messaging", "Messaging");}
</p>
@RenderBody()
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的消息控制器:

public ActionResult Messaging()
{
    return PartialView(new ViewModels.Messaging()
        {
            MessageType = Utilities.MessageType.Success,
            MessageHeader = "Test",
            Message = "this is a test message"
        });
}
Run Code Online (Sandbox Code Playgroud)

这是我存储在共享文件夹中的部分视图,名为 _MessagingPartial.cshtml:

@model AWS.PL.ViewModels.Messaging

<span>
    Model.Message
</span>
Run Code Online (Sandbox Code Playgroud)

这是我的视图模型:

public class Messaging
{
    public Utilities.MessageType MessageType { get; set; }
    public string MessageHeader { get; set; }
    public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误“未找到部分视图消息传递”错误。部分视图应该被称为 Messanging.cshtml 还是我得到了根本性错误?

非常感谢任何帮助。

谢谢,威尔基。

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

2
推荐指数
1
解决办法
1万
查看次数

程序到接口而不是实现混淆

我试图养成编码到接口而不是实现的习惯,而在大多数情况下,我可以看到有一些我努力的原因.

拿这个非常简单的例子:

public interface IAuditLog
{
    void AddLog(string log);
}

public class AuditLog : IAuditLog
{
    public void AddLog(string log)
    {
        //implementation
    }
}
Run Code Online (Sandbox Code Playgroud)

要调用审计日志类:

public partial class AuditLogPage : System.Web.UI.Page
{
    protected void btnAddLog_Click(object sender, EventArgs e)
    {
        IAuditLog objAuditLog = new AuditLog();
        objAuditLog.AddLog("test log");
    }
}
Run Code Online (Sandbox Code Playgroud)

在实例化时我仍然需要使用AuditLog,那么重点是什么?如果AddLog方法签名发生变化,我仍然需要浏览所有使用它的页面并修改代码.我错过了这一点吗?

感谢任何提前帮助,威尔基.

c# oop interface

1
推荐指数
1
解决办法
1037
查看次数

Javascript仅在外部文件中失败

任何人都可以告诉我为什么我在第二行上出现错误,说'意外字符串',但是当我直接在我的视图上时它正常工作(我使用的是MVC 3,而不是它有所不同):

function getUsers(processId) {
    $.ajax({
        url: "@Url.Action('GetProcessApprovers', 'Risk')",
        data: { processId: processId },
        dataType: "json",
        type: "POST",
        error: function () {
            alert("An error occurred.");
        },
        success: function (data) {
            var items = "<option value=\"\">-- Please select --</option>"

            if (data != "") {
                $.each(data, function (i, item) {
                    items += "<option value=\"" + item.Value + "\">" + item.Text + "</option>";
                });
            }

            $("#ProcessOwnerId").html(items);
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

javascript jquery asp.net-mvc-3

1
推荐指数
1
解决办法
103
查看次数

HttpPostedFile.SaveAs 访问被拒绝

我正在尝试保存从我的页面上传的文件,但出现访问被拒绝错误:

public void SaveFile(Item item, HttpPostedFileBase file)
    {
        var dir = string.Format(@"{0}\NSN\{1}", ConfigurationManager.AppSettings["ContentLocation"].ToString(), item.Id.ToString());

        if (!System.IO.Directory.Exists(dir))
            System.IO.Directory.CreateDirectory(dir);

        Array.ForEach(Directory.GetFiles(dir), File.Delete);

        file.SaveAs(dir);
    }
Run Code Online (Sandbox Code Playgroud)

我正在从 Visual Studio 的本地主机运行此站点,因此不涉及应用程序池。我已经让网络服务(以及作为测试的每个人)完全控制文件夹及其子文件夹。奇怪的是,它会根据需要创建文件夹,并删除现有文件夹中的任何文件。只有当我调用 SaveAs 函数时才会出现错误。

c# asp.net-mvc file-permissions file-upload

1
推荐指数
1
解决办法
2823
查看次数