Преобразовать выпадающее значение из строки в int - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть код для DropDownList в C # с MVC.И значение этого передается в виде строки.Но я хочу это как целое число.Как мне преобразовать его на контроллере до SaveChanges(), потому что он выдает ошибку.

Вот мой код просмотра:

<div class="form-group">
    @Html.LabelFor(model => model.DesignationID, "DesignationID", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownList("DesignationID", new SelectList(ViewBag.Designationid, "Value", "text"),"Select Designation", htmlAttributes: new { @class = "form-control" })
        @Html.ValidationMessageFor(model => model.DesignationID, "", new { @class = "text-danger" })
    </div>
</div>

<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <input type="submit" value="Create" class="btn btn-default" />
    </div>
</div>

Вот мой код контроллера:

// POST: Employee/Create
[HttpPost]
public ActionResult Create(Employee employee)
{
    try
    {
        employeeService.Insert(employee);
        unitOfWork.SaveChanges();
        return RedirectToAction("Index");
    }
    catch (Exception ex)
    {
        return View(ex);
    }
}

Вот ошибка:

Элемент модели, переданный в словарь, имеет тип 'System.Data.Entity.Infrastructure.DbUpdateException', но для этого словаря требуется элемент моделивведите 'Pal.Entities.Models.Employee'.

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 20 февраля 2019

Происходят две вещи:

  1. Вы получаете DbUpdateException (по неизвестным пока причинам).
  2. Это входит в catch, где выпохоже, пытается показать Исключение, вызывая return View(ex), но для этого для работы View Create.cshtml должен содержать что-то вроде @model System.Exception.Это не так, вызывая еще одно исключение.
    Вам нужно найти другой способ справиться с информацией об исключении;например, вызовите Logger.Log(ex) или создайте представление ошибки Views/Shared/Error.cshtml, использующее @model System.Exception, а затем вызовите это представление, выполнив return View("Error", ex); в catch-части.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...