C# 批准/拒绝方法在asp.net mvc中不起作用

C# 批准/拒绝方法在asp.net mvc中不起作用,c#,sql-server,asp.net-mvc,C#,Sql Server,Asp.net Mvc,我创建了一个方法来批准或拒绝来自用户注册表的注册请求 当用户提交表单时,请求将处于挂起状态,管理员有权拒绝或批准该请求;但是我的方法不能正常工作,因为什么都没有发生 当我单击“拒绝”或“批准”按钮时,应用程序只是刷新页面 谁能告诉我我的代码有什么问题吗?下面是代码片段 这是批准控制员 注册批准或拒绝视图 @model IEnumerable @{ ViewBag.Title=“Index”} 指数 函数ConfirmApprove(){ 返回确认(“您确定要接受吗?”); } 函数Confirm

我创建了一个方法来批准或拒绝来自用户注册表的注册请求

当用户提交表单时,请求将处于挂起状态,管理员有权拒绝或批准该请求;但是我的方法不能正常工作,因为什么都没有发生

当我单击“拒绝”或“批准”按钮时,应用程序只是刷新页面

谁能告诉我我的代码有什么问题吗?下面是代码片段

这是批准控制员

注册批准或拒绝视图

@model IEnumerable
@{
ViewBag.Title=“Index”}
指数
函数ConfirmApprove(){
返回确认(“您确定要接受吗?”);
}
函数ConfirmReject(){
返回确认(“您确定要拒绝它吗?”);
}
管理注册
@if(TempData[“Msg”]!=null)
{model.Last_Name)
@Html.DisplayNameFor(model=>model.Department\u Name)
@Html.DisplayNameFor(model=>model.Team\u Name)
@DisplayNameFor(model=>model.Select\u成员)
@Html.DisplayNameFor(model=>model.Approved)
@DisplayNameFor(model=>model.Email\u ID)
@DisplayNameFor(model=>model.Competition.CategoryName)
@foreach(模型中的var项目){
@ActionLink(“批准”、“批准”,新的{id=item.Registration\u id},新的{onclick=“return ConfirmApprove();”)|
@ActionLink(“拒绝”,“拒绝”,新建{id=item.Registration_id},新建{onclick=“return ConfirmReject();”)
@DisplayFor(modelItem=>item.First\u Name)
@DisplayFor(modelItem=>item.Last_Name)
@DisplayFor(modelItem=>item.Department\u Name)
@DisplayFor(modelItem=>item.Team\u名称)
@DisplayFor(modelItem=>item.Select\u成员)
@DisplayFor(modelItem=>item.Approved)
@DisplayFor(modelItem=>item.Email\u ID)
@DisplayFor(modelItem=>item.Competition.CategoryName)
}
**管理基控制器**
公共类BaseAdminController:控制器
{
//获取:Admin/BaseAdmin
受保护的AdminB objBs;
公共BaseAdminController()
{
objBs=newadminbs();
}
}
批准控制器中使用的registerbs类

公共类寄存器
{
私有注册数据库objDb;
公共登记册
{
objDb=newregisterdb();
}
公共IEnumerable GetALL()
{
返回objDb.GetALL();
}
公共注册GetByID(int Id)
{
返回objDb.GetByID(Id);
}
公共无效插入(注册)
{
objDb.插入(注册);
}
公共无效删除(int-Id)
{
objDb.Delete(Id);
}
公共作废更新(注册)
{
更新(注册);
}
}
注册数据库类
公共类注册器
{
私有上下文数据库;
公共注册处
{
db=新的XtechContext();
}
公共IEnumerable GetALL()
{
返回db.Registrations.ToList();
}
公共注册GetByID(int Id)
{
返回db.Registrations.Find(Id);
}
公共无效插入(注册)
{
db.Registrations.Add(注册);
Save();
}
公共无效删除(int-Id)
{
注册=db.Registrations.Find(Id);
db.注册。删除(注册);
Save();
}
公共作废更新(注册)
{
db.Entry(registration).State=EntityState.Modified;
}
公共作废保存()
{
db.SaveChanges();
}
}

您不会调用
SaveChanges
来解释您的修改未持久化到数据库的原因


您可以在更新方法中添加对
Save()
的调用。

不清楚您实际的问题是什么,但您有一个
索引(字符串状态)
方法,并且当重定向到
索引()时,您的
Approve()
Reject()
方法都不会传递“Status”的值
method能否添加
RegisterDb.Update
的实现?是的,公共无效更新(注册注册){db.Entry(注册).State=EntityState.Modified;}我重新编辑了我的帖子,还上传了UI的图片
   public class ApprovedRegistrationController :BaseAdminController
{
    // GET: Admin/ApproveRegistration
    public ActionResult Index(string Status)
    { ViewBag.Status = (Status == null ? "P" : Status);
        if (Status == null)
        { var register = objBs.registerBs.GetALL().Where(x => x.Approved == "P").ToList();
            return View(register); }
        else
        { var register = objBs.registerBs.GetALL().Where(x => x.Approved == Status).ToList();
            return View(register); }}

    public ActionResult Approve(int id)
    {   try
        { var myRegistration = objBs.registerBs.GetByID(id);
            myRegistration.Approved = "A";
            objBs.registerBs.Update(myRegistration);
            TempData["Msg"] = "Approved Successfully";
            return RedirectToAction("Index"); }
        catch (Exception e1)
        { TempData["Msg"] = "Approved Failed: " + e1.Message;
            return RedirectToAction("Index");}}

    public ActionResult Reject(int id)
    {try
        { var myRegistration = objBs.registerBs.GetByID(id);
            myRegistration.Approved = "R";
            objBs.registerBs.Update(myRegistration);
            TempData["Msg"] = "Rejected Successfully";
            return RedirectToAction("Index");}
        catch (Exception e1)
        { TempData["Msg"] = "Rejection Failed: " + e1.Message;
            return RedirectToAction("Index");}}}
    @model IEnumerable<XtechWebsite.Models.Registration>

    @{
    ViewBag.Title = "Index";}

   <h2>Index</h2>

   <script>
      function ConfirmApprove() {

        return confirm('Are u sure to accept it?');

    }
    function ConfirmReject() {

        return confirm('Are u sure to reject it?');
    }


</script>
<h3>Manage Registration<h3>
@if (TempData["Msg"] != null)
{<h3 @TempData["Msg"].ToString()</h3>
}
<h4>@if (ViewBag.Status == "P")
    {<b>@Html.ActionLink("Pending Requests", "Index", new { Status = "P" })</b>
    }
    else
    {

        @Html.ActionLink("Pending Requests", "Index", new { Status = "P" })
    }
        @if (ViewBag.Status == "A")
        {
            <b>@Html.ActionLink("Approved Requests", "Index", new { Status = "A" })</b>
        }
        else
        {

            @Html.ActionLink("Approved Requests", "Index", new { Status = "A" })
        }
    @if (ViewBag.Status == "R")
    {
        <b>@Html.ActionLink("Rejected Requests", "Index", new { Status = "R" })</b>
    }
    else
    {

        @Html.ActionLink("Rejected Requests", "Index", new { Status = "R" })
    }

</h4
<table class="table">
    <tr>
        <th>Approve/Reject</th>
        <th>
            @Html.DisplayNameFor(model => model.First_Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Last_Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Department_Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Team_Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Select_Members)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Approved)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Email_ID)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Competition.CategoryName)
        </th>
        <th></th>
    </tr>
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.ActionLink("Approve", "Approve", new { id = item.Registration_ID }, new { onclick = "return ConfirmApprove();" }) |
            @Html.ActionLink("Reject", "Reject", new { id = item.Registration_ID }, new { onclick = "return ConfirmReject();" })

        </td>
        <td>
            @Html.DisplayFor(modelItem => item.First_Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Last_Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Department_Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Team_Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Select_Members)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Approved)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Email_ID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Competition.CategoryName)
        </td>
    </tr> }
</table>
**Admin Base Contoller**

    public class BaseAdminController : Controller
    {
        // GET: Admin/BaseAdmin

        protected AdminBs objBs;
        public BaseAdminController()
    {
        objBs = new AdminBs();
    }
    }
 public class RegisterBs
    {
    private  RegisterDb objDb;

        public RegisterBs()
        {

            objDb = new RegisterDb();
        }
        public IEnumerable<Registration> GetALL()
        {

            return objDb.GetALL();

        }
        public Registration GetByID(int Id)
        {
            return objDb.GetByID(Id);

        }
        public void Insert(Registration registration)
        {
            objDb.Insert(registration);


        }
        public void Delete(int Id)
        {
            objDb.Delete(Id);

        }
        public void Update(Registration registration)
        {
            objDb.Update(registration);

        }

    }
<b>Registration db class<b>

     public class RegisterDb
    {

        private XtechContext db;

        public RegisterDb()
        {

            db= new XtechContext();
        }
      public IEnumerable<Registration> GetALL()
        {

            return db.Registrations.ToList(); 

    }
        public Registration GetByID(int Id)
      {
          return db.Registrations.Find(Id);

      }
        public void Insert(Registration registration)
        {
            db.Registrations.Add(registration);
            Save();

        }
       public void Delete(int Id)
        {
            Registration registration = db.Registrations.Find(Id);
            db.Registrations.Remove(registration);
            Save();

        }
       public void Update(Registration registration)
        {
            db.Entry(registration).State = EntityState.Modified;

        }
        public void Save()
       {
           db.SaveChanges();
       }
    }