Показать сообщение об ошибке в том же виде

Я пытаюсь удалить запись из базы данных, используя MVC 2. В настоящее время функция удаления работает нормально, но есть некоторые записи с отношениями внешних ключей, поэтому я не хочу их удалять, и когда пользователь пытается удалить такую ​​запись, я хочу для отображения сообщения об ошибке в представлении удаления без перехода к другому представлению.

контроллер:

 [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here

                StockRepository rep = new StockRepository();
                Stock stock = rep.GetStock(id);
                rep.Delete(stock);
                rep.Save();

                return RedirectToAction("Index");
            }
            catch
            {
                //need to display an error message if unable to delete
                return View();
            }
        } 

Посмотреть:

  <h2>Delete</h2>

    <h3>Are you sure you want to delete this?</h3>
    <fieldset>
        <legend>Fields</legend>

        <div class="display-label">StockID</div>
        <div class="display-field"><%: Model.StockID %></div>


        <div class="display-label">ClientName</div>
        <div class="display-field"><%: Model.ClientName %></div>

        <div class="display-label">ItemName</div>
        <div class="display-field"><%: Model.ItemName %></div>

        <div class="display-label">ItemCount</div>
        <div class="display-field"><%: Model.ItemCount %></div>

        <div class="display-label">Price</div>
        <div class="display-field"><%: String.Format("{0:F}", Model.Price) %></div>

        <div class="display-label">OtherExpences</div>
        <div class="display-field"><%: String.Format("{0:F}", Model.OtherExpences) %></div>

        <div class="display-label">TotalStockValue</div>
        <div class="display-field"><%: String.Format("{0:F}", Model.TotalStockValue) %></div>

        <div class="display-label">DeliveryDate</div>
        <div class="display-field"><%: String.Format("{0:d}", Model.DeliveryDate) %></div>

        <div class="display-label">Description</div>
        <div class="display-field"><%: Model.Description %></div>


    </fieldset>
    <% using (Html.BeginForm()) { %>
        <p>
            <input type="submit" value="Delete" /> |
            <%: Html.ActionLink("Back to List", "Index") %>
        </p>
    <% } %>

1 ответ

Использование Viewdata

Посмотреть

<%
   if (ViewData["dbError"] != null)
   {
    %>
//display ViewData dbError
<%
   }
    %>

Controllor

 [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here

                StockRepository rep = new StockRepository();
                Stock stock = rep.GetStock(id);
                rep.Delete(stock);
                rep.Save();

                return RedirectToAction("Index");
            }
            catch
            {
                //need to display an error message if unable to delete
               **ViewData["dbError"] = "Error message here";**
                return View();
            }
        } 
Другие вопросы по тегам