2013-05-10 2 views
0

Я пытаюсь удалить запись из базы данных с помощью 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> 
    <% } %> 

ответ

0

Использование 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(); 
      } 
     } 
Смежные вопросы