Исключение точки при попытке открыть / вызвать функцию

У меня есть проблема с вызовом моей функции, которые показывают книги для того же автора, например, у меня есть эти авторы :

Имя Автора: Jeremy McPeak; Joe Fawcett; Nicholas C. Zakas;

Когда я нажимаю на "Jeremy McPeak"и "Joe Fawcett"новая страница открылась хорошо и показать все книги для этих авторов .

Но когда нажмите на этого автора "Nicholas C. Zakas"и так как у него есть точка в его имени, я получил исключение

Ссылка на объект не устанавливается на экземпляр объекта.

Эта проблема только тогда, когда я нажимаю на любого автора, у которого есть точка в его имени ..

также Вот моя функция :

public ActionResult Author(string AuthorName, int? page)
{
    if (AuthorName != null)
    {
        ViewBag.AuthorName = AuthorName;
        int pageSize = 6;
        int pageNumber = page ?? 1;
        var result = db.Books.Where(s => s.Author_name.Contains(AuthorName)).OrderByDescending(x => x.Book_id).ToList();
        return View(result.ToPagedList(pageNumber, pageSize));
    }
    return RedirectToAction("Index", "Home");
}

Код Просмотра Автора:

@using PagedList.Mvc
@using System.Text.RegularExpressions;
@model PagedList.IPagedList<SmartBookLibrary.Models.Book>
@{
    ViewBag.Title = "Books For " + ViewBag.AuthorName+ "- Smart Books Library";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section AdditionalMeta
{
    <meta name="robots" content="index,follow">
}
<div class="container">
    <!-- Page Header -->
    <div class="row">
        <div class="col-lg-12">
            <h1 class="page-header">                
                <span class="fa fa-pencil"></span>@ViewBag.AuthorName
            </h1>
        </div>
    </div>
    <!-- /.row -->
    <!-- Projects Row -->
    <div class="row">
        @foreach (var item in Model)
        {
            <div class="col-md-4 portfolio-item" style="margin-bottom:10px;height:450px">
                <div class="ih-item square effect3 bottom_to_top">
                    <a href="~/book/@item.Book_id/@item.UrlSlug">
                        <div class="img"><img itemprop="image" class="img-responsive" src="~/Images/@item.Book_Image" alt="@item.Book_name" title="@item.Book_name"></div>
                        <div class="info">
                            <h3>@item.Book_name</h3>
                        </div>
                    </a>
                </div>
                <h3 itemprop="name">
                    <a href="~/book/@item.Book_id/@item.UrlSlug">
                        @item.Book_name
                        @if (item.Edition != 0)
                        {
                            switch (item.Edition)
                            {
                                case 1:<small class="btn btn-default btn-xs">@item.Edition'St Edition</small> break;
                                case 2:<small class="btn btn-default btn-xs">@item.Edition'nd Edition</small> break;
                                case 3:<small class="btn btn-default btn-xs">@item.Edition'rd Edition</small> break;
                                case 4 - 10:<small class="btn btn-default btn-xs">@item.Edition'th Edition</small> break;
                                default:<small class="btn btn-default btn-xs">@item.Edition'th Edition</small> break;

                            }
                        }
                    </a>
                </h3>
                <p itemprop="description">
                    @*@Html.Raw(item.Book_Description)*@
                </p>
            </div>
        }
    </div>
    <!-- /.row -->
    <hr>
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
    @Html.PagedListPager(Model, page => Url.Action("Author", new { AuthorName = ViewBag.AuthorName, page }))
</div>

Область Вызова :

@{
    var s = Model.Book.Author_name.ToString();
    string[] Auth = s.Split(',');
    ViewBag.Author = Auth;
}
<p itemprop="author">
    <i class="glyphicon glyphicon-pencil"></i> <b>Author Name :</b>
    @for (int i = 0; i < Auth.Length; i++)
    {
        <a style="color:#777777" href="~/Author/@Auth[i]">@Auth[i];</a>
    }
</p>

Кто-нибудь знает, как это исправить ?

1 ответ

  1. Я тестирую код в авторском действии без return View(result.ToPagedList(pageNumber, pageSize));
    Нет никаких проблем.Я думаю, ToPagedList вызвал ошибку. result.ToPagedList(pageNumber, pageSize)имеет значение null.
    Вы отследите его.
    Введите описание изображения здесь