Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net &引用;值不能为null或空。参数名称:contentPath";当ModelState出现错误时,在回发时最意外的行上_Asp.net_.net_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

Asp.net &引用;值不能为null或空。参数名称:contentPath";当ModelState出现错误时,在回发时最意外的行上

Asp.net &引用;值不能为null或空。参数名称:contentPath";当ModelState出现错误时,在回发时最意外的行上,asp.net,.net,asp.net-mvc,asp.net-mvc-5,Asp.net,.net,Asp.net Mvc,Asp.net Mvc 5,我已经连续两个小时和这个怪物讨价还价了 我得到这个错误: 值不能为null或空。参数名称:contentPath 在我看来,这一行: @Html.ValidationMessageFor(model => model.IssueName, "", new { @class = "text-danger" }) 下面给出的堆栈跟踪似乎表明调用了Url.Content,但我没有这样做。下面是堆栈跟踪,随后是导致错误的代码行周围的多行代码: [ArgumentException:值不能为

我已经连续两个小时和这个怪物讨价还价了

我得到这个错误:

值不能为null或空。参数名称:contentPath

在我看来,这一行:

@Html.ValidationMessageFor(model => model.IssueName, 
  "", new { @class = "text-danger" })
下面给出的堆栈跟踪似乎表明调用了
Url.Content
,但我没有这样做。下面是堆栈跟踪,随后是导致错误的代码行周围的多行代码:

[ArgumentException:值不能为null或空。参数名称: contentPath]System.Web.Mvc.UrlHelper.GenerateContentUrl(字符串 contentPath,HttpContextBase httpContext)+125
System.Web.Mvc.UrlHelper.Content(字符串contentPath)+26
ASP.\页面\视图\日志\编辑问题\ cshtml.Execute()中的 MyProject\Views\Journal\EditIssue.cshtml:45
System.Web.WebPages.WebPageBase.ExecutePageHierarchy()+197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy()+105
System.Web.WebPages.StartPage.RunPage()+17
System.Web.WebPages.StartPage.ExecutePageHierarchy()+64
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext、TextWriter编写器、WebPageUnderingBase起始页)+78
System.Web.Mvc.RazorView.RenderView(ViewContext, TextWriter编写器,对象实例)+256
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext,TextWriter)+107
System.Web.Mvc.ViewResultBase.ExecuteSult(ControllerContext上下文) +291 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext,ActionResult ActionResult)+13
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1
筛选器、Int32筛选器索引、ResultExecutingContext预文本、,
ControllerContext ControllerContext,ActionResult ActionResult)+56
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1 筛选器、Int32筛选器索引、ResultExecutingContext预文本、, ControllerContext ControllerContext,ActionResult ActionResult)+420
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext,IList
1过滤器,ActionResult ActionResult)+52
System.Web.Mvc.Async.c__显示类2B.b__1c() +173 System.Web.Mvc.Async.c__显示类21.b__1e(IAsyncResult 异步结果)+100
System.Web.Mvc.Async.WrappedAsyncResult
1.CallEndDelegate(IAsyncResult 异步结果)+10
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult 异步结果)+27
System.Web.Mvc.Controller.b_u1d(IAsyncResult asyncResult,ExecuteCoretate innerState)+13
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult 异步结果)+29
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+36 System.Web.Mvc.Controller.b___15(IAsyncResult 异步结果,控制器)+12
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult 异步结果)+22
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+49
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+26
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult 异步结果)+10
System.Web.Mvc.MvcHandler.b_uu5(IAsyncResult asyncResult,ProcessRequestState innerState)+21
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult 异步结果)+29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End()+49
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest(IAsyncResult 结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9644097 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+155

引发异常的行周围的代码行包括:

<div class="form-group">
    @Html.LabelFor(model => model.IssueName, htmlAttributes: new { @class = "control-label col-md-2"})
    <div class="col-md-10">
        @Html.EditorFor(model => model.IssueName, new { htmlAttributes = new { @class = "form-control", id = "IssueName" } })
        @Html.ValidationMessageFor(model => model.IssueName, "", new { @class = "text-danger" })
    </div>
</div>
天哪

如果你曾经,曾经,曾经得到过这个错误,请记住,这个错误只有一个原因

在视图的行网络中的某个位置,您传递了一个空值 @Url.Content方法的值。期间。

它报告异常的线路可能与异常无关,可能距离罪犯一英里或两英里

搜索,搜索,疯狂地搜索。:-)


这就是我找到解决方法并从痛苦中解脱出来的原因。

我花了一段时间才停止查看以红色突出显示的错误页面行,并实际阅读顶部的错误消息。如果您得到类似的堆栈跟踪,则
Url。内容可能是罪魁祸首。但这是我通过异常消息搜索时出现的第一个答案,我的问题与
Url.Content
无关。防止这种情况的一个好办法是在调用
Url.Content()
方法之前检查是否有值要传递给它,例如
@if(!string.isNullOrEmpty(item.Url){}
或类似的东西。
[HttpPost]
public async Task<ActionResult> EditIssue(EditIssueViewModel viewModel)
{
    viewModel.AvailableTags = BusinessManager.GetAllTags();

    if (viewModel.IssuePDFFile == null || viewModel.IssuePDFFile.ContentLength == 0)
    {
        ModelState.AddModelError("", "Please select a file to upload.");
        return View(viewModel);
    }

    var fileInfo = new FileInfo(viewModel.IssuePDFFile.FileName);
    if (!StaticData.AcceptedContentTypes.Contains(viewModel.IssuePDFFile.ContentType, StringComparer.InvariantCultureIgnoreCase) ||
        !fileInfo.Extension.Equals(".pdf", StringComparison.InvariantCultureIgnoreCase))
    {
        ModelState.AddModelError("", "You can only select a PDF file.");
        return View(viewModel);
    }

    if (!ModelState.IsValid)
    {
        var errors = ModelState.Values.SelectMany(v => v.Errors)
            .Select(e => new { e.ErrorMessage, e.Exception });

        var errorList = errors.ToList();

        errorList.ForEach(e => Debug.Print(e.ErrorMessage));
        errorList.ForEach(e => ModelState.AddModelError("", e.ErrorMessage));

        return View(viewModel);
    }

    var operationResult = await BusinessManager.EditIssueAsync(viewModel);

    if (!operationResult.Succeeded)
    {
        ModelState.AddModelError("", operationResult.FailureMessage);
        return View(viewModel);
    }

    viewModel = (EditIssueViewModel)BusinessManager.GetIssueWithRelationships(viewModel.IssueId);
    viewModel.SuccessMessage = operationResult.SuccessMessage;
    return View(viewModel);
}