Asp.net MVC 5,点击按钮显示标签?

时间:2017-07-21 12:48:40

标签: c# asp.net asp.net-mvc

我希望在点击我的网页上的按钮后显示标签。我添加了两个按钮,如此

@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();
            }

但是,我还希望点击“预订已接受/已拒绝”时显示该页面。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:3)

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

在视图中

@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>
    }

答案 1 :(得分:3)

您可以使用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 :(得分:0)

根据我的观点,尽可能多地使用/使用模型属性总是好的,然后是这些viewbag,viewdata和tempdata。在上面的场景中,您似乎已经拥有了model属性:requestLifts.bookingStatus来存储状态,因此只需按照您的方式存储,并通过从控制器传递模型来显示该视图

例如:

@model requestLifts

<h2>Model.bookingStatus</h2>