簡體   English   中英

值不能為 null 或為空。 參數名稱linkText

[英]Value cannot be null or empty. Parameter name linkText

我在“asp.net MVC for Professional”一書中有一個與現場類似的項目,所以我的導航欄有問題,視圖有問題。

錯誤的文本是:值不能為空或空。 出處:linkText

@foreach (var link in Model)
  {
   @Html.RouteLink(link, new
  {
      controller = "Profile"

,

我了解鏈接中的問題,但我不知道如何解決。

下面的控制器和視圖代碼。 菜單.cshtml

@model IEnumerable<string>

    @Html.ActionLink("List", "Profile")
    @foreach (var link in Model)
    {
        @Html.RouteLink(link, new
    {
        controller = "Profile",
        action = "List",
        category = link,
        page = 1
    })
    }

導航控制器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using HoboAnimal.Domain.Abstract;


namespace HoboAnimal.WebUI.Controllers
{
    public class NavController : Controller
    {
        private IProfileRepository repository;
        public NavController(IProfileRepository repo)
        {
            repository= repo;
        }
        public PartialViewResult Menu(){ 

            IEnumerable<string> categories = repository.Profiles.
                Select(x => x.Category).
                Distinct().
                OrderBy(x => x);
            return PartialView(categories);
        }
    }
}

布局

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    <link href="~/Content/Site.css" type="text/css" rel="stylesheet" />
</head>
<body>
    <div id="header">

    </div>
    <div id="categories">
        @{Html.Action("Menu","Nav");}
    </div>
    <div id="content">
        @RenderBody()
    </div>
</body>
</html>

謝謝

由於 linkText 是 ActionLink 和 RouteLink 的第一個參數,這意味着模型中的 1 個或多個“鏈接”是空字符串。 在創建鏈接之前檢查它:

@foreach (var link in Model)
{
  if(!String.IsNullOrEmpty(link.toString())
  {
    @Html.RouteLink(link, new
    {
        controller = "Profile",
        action = "List",
        category = link,
        page = 1
    })
  }
}

或從選擇中刪除空行:

IEnumerable<string> categories = repository.Profiles.
                Select(x => x.Category).
                Distinct().
                Where(x => !String.IsNullOrEmpty(x)).
                OrderBy(x => x);

這個錯誤:

值不能為 null 或為空。 出處:linkText

只說在ActionLink方法中需要linkText參數(他不能為null 或 empty )。

例如你可以這樣寫:

 @Html.ActionLink(" ","List", "Profile")

它應該有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM