Viewbag "Значение не может быть нулевым", но оно не является нулевым - PullRequest
0 голосов
/ 29 мая 2018

Итак, я заполняю @ Html.DisplayText значением из viewbag, но я получаю ArgumentNullException, когда значение существует.

Это метод действия

public ActionResult Index(DateTime? fechaInicio, DateTime? fechafin, string currentFilter, string searchString, int? page)
{
    if (!fechaInicio.HasValue || !fechafin.HasValue) return View();
    if (searchString == null)
        searchString = currentFilter;
    ViewBag.CurrentFilter = searchString;
    ViewBag.CurrentFechaInicio = fechaInicio;
    ViewBag.CurrentFechaFin = fechafin;
    var param = new Parametros()
    {
        FechaInicio = fechaInicio.Value,
        FechaFin = fechafin.Value
    };
    IEnumerable<Registro> registros = _registroRepository.ObtenerRegistros(param);
    if (!String.IsNullOrEmpty(searchString))
    {
        registros = registros.Where(s => s.Patente.Contains(searchString));
    }
    if (!registros.Any())
        return View("SinResultados");
    int pageSize = 10;
    int pageNumber = (page ?? 1);
    return View("List",registros.ToPagedList(pageNumber, pageSize));
}

enter image description here

Попытка изменения

ViewBag.CurrentFechaInicio = fechaInicio;

на

ViewBag.CurrentFechaInicio = fechaInicio.Value;

, но ничего не меняется.

1 Ответ

0 голосов
/ 29 мая 2018

Дело в том, что это не строка, а DateTime, поэтому as string возвращает null

Вам понадобится метод

.ToString()

.

Ключевое слово as " похоже на приведение "

Обратите внимание, что оператор as выполняет только ссылочные преобразования, преобразования с нулевым значением и преобразования в боксы.Оператор as не может выполнять другие преобразования, такие как пользовательские преобразования, которые вместо этого должны выполняться с использованием приведенных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...