2017-07-21 84 views
0

我正在寻找显示一个标签后点击我的网页上的按钮。我已经添加了两个按钮,像这样Asp.net MVC 5,在按钮点击时显示一个标签?

@using (Html.BeginForm("ViewRequest", "Home")) 
{ 
    <button type="submit" name="Home" value="Accept" class="btn btn-sm btn-success">Accept</button> 
    <button type="submit" name="Home" value="Reject" class="btn btn-sm btn-danger">Reject</button> 
} 

然后在我的控制,我已经有按钮上点击

if (Home == "Accept") 
      { 
       requestLifts.bookingStatus = "Accepted"; 
       db.SaveChanges(); 

      } 
      else if (Home == "Reject") 
      { 
       requestLifts.bookingStatus = "Rejected"; 
       db.SaveChanges(); 
      } 

更新数据库不过,我也想在页面上单击“预定接受显示/拒绝”。做这个的最好方式是什么?

+0

取消控制器,在ViewBag/TempData中设置包含消息的字符串值,然后在生成的视图上显示该值(如果该值已填充)是一种显而易见的方法。或者使消息成为返回的ViewModel的属性是另一个。 – ADyson

+0

我看到你将'requestLifts.bookingStatus'设置为'Accepted'。这是你传回视图的模型吗? – jamiedanq

回答

1

您可以使用ViewBag或TempData的完成你的要求

随着TempData的

TempData["Success"] = "Accepted!"; 

随着ViewBag

ViewBag.Success = "Accepted!"; 

然后在CSHTML

使用它们像

@if (ViewBag.Accepted != null) 
{ 
<p class="alert alert-success" id="successMessage">@ViewBag.Accepted</p> 
} 

@if (TempData["Success"] != null) 
{ 
    <p class="alert alert-success" id="successMessage">@TempData["Success"]</p> 
} 

感谢

2

您可以使用临时数据显示消息

在查看

@if (TempData["Accepted"] != null) 
{ 
<p class="alert alert-success" id="successMessage">@TempData["Accepted"]</p> 
} 

在控制器

TempData["Success"] = "Accepted!"; 
return RedirectToAction("actionname", "controllername"); 

由于同样的方式,你可以使用

ViewData and ViewBag; 

HTML:

@if (ViewData["Accepted"] != null) 
    { 
    <p class="alert alert-success" id="successMessage">@ViewData["Accepted"]</p> 
    } 
0

按我看来,这是一件好事,有/尽可能多的,那么这些viewbag,可视数据和TempData的使用模型属性。在上述情况下,似乎你已经有模型属性:requestLifts.bookingStatus存储状态,所以只是存储在你做同样的方式显示,鉴于由控制器

前传递模型:

@model requestLifts 

<h2>Model.bookingStatus</h2>