【问题标题】:System.ArgumentException: Value cannot be empty with a literal stringSystem.ArgumentException:值不能为空,带有文字字符串
【发布时间】:2016-03-16 16:07:18
【问题描述】:

想不出来这个。

我在视图中有以下标记(MVC 4,Razor 2):

<script type="text/javascript">
var PageApiCtor = {
    TempProfilePicUrl: '@Url.Action("TempPic", "Member")',
    CropUrl: '@Url.Action("CropAndSave", "Member")',
    DeletePicUrl: '@Url.Action("DeletePic", "Member")',
    NoPicUrl: '@Url.Content("~/Content/images/no-pic.gif")',
    LastProfileRef: undefined
};

错误如下:

显然,提供了一个值。

然后,我对字符串进行了硬编码,并在不同的行上得到了相同的错误:

然后,我添加了控制台输出语句。然后在 JS 部分之后立即发生异常:

这些控制器/动作确实存在,所以我对此感到困惑。我以前见过这样的东西,Razor 解析器会抛出一个不相关的错误,但从来没有这么奇怪:

有什么想法吗?

我现在要系统地删除页面内容,以便我可以隔离问题,因为我目前不知道,除了所抛出的异常显然没有在指示的行上发生。

谢谢

【问题讨论】:

  • 如果您对 no-pic.gif 链接进行硬编码,是否会出现同样的错误? (只是为了测试)
  • 好的,谢谢。不用找了。查看我的更新
  • 有趣。我手动将相同的脚本输入到一个新的 MVC4 应用程序中,它运行没有问题。我认为即使它指向您那里..您的问题在其他地方?初始化 javascript 对象(实际上没有模型或任何东西)不应导致 .net 异常。您可以在该对象之前将某些内容记录到浏览器控制台,然后在该对象之后记录该对象吗?控制台是否在您获得该异常之前显示该对象?

标签: c# asp.net-mvc-4 exception razor-2


【解决方案1】:

页面下方有一个@Url.Content() 调用方式,甚至没有接近异常断点,它传入了一个空字符串。不是 null,是一个空字符串。这就是问题所在

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 2014-09-29
    • 1970-01-01
    相关资源
    最近更新 更多