【问题标题】:return to original page after update in asp.net mvc在asp.net mvc中更新后返回原始页面
【发布时间】:2020-05-25 21:43:41
【问题描述】:

如果某列为空,我有一个 asp.net MVC 从表中选择 10 行数据,并允许更新该列。 每次更新后,我都希望它返回显示的原始 10,而不是进行新的选择。因为我想让它让我看看更新是否成功。

这是我当前的代码。

 using System;
using System.Collections.Generic;
using System.ComponentModel.Design;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DBUpdateTool.Models;

namespace DBUpdateTool.Controllers
{
    public class HomeController : Controller
    {
        private dtsdbEntities _db = new dtsdbEntities();
        public ActionResult Index()
        {
            return View(_db.IPR_CompanyGen.Where(c => c.ACCOUNT_ID == null).Take(10).ToList());
        }

        public ActionResult Edit(int id)
        {
            var CompanyToEdit = (from m in _db.IPR_CompanyGen where (m.CompanyID.Equals(id.ToString())) select m).First();
            return View(CompanyToEdit);
        }


        // GET: Home/Edit/5
        [HttpPost]
        public ActionResult Edit([Bind(Include = "CompanyID,CompanyName,Address1,Address2,Address3,City,StateProvinceCode,PostalCode,CountryCode,Region,PhoneNumber,URL,PrimaryCompanyType, DominantCompanyStyle,   DominantCompanyOrientation, Buy_side,   Sell_side,  Strategic,  EqPortfolioTurnover,    ReportedEquityAssets,   Status, LastModifiedDate,   ACCOUNT_ID, CRM_Comments")] IPR_CompanyGen CompanyToEdit)
        {

            if (ModelState.IsValid)
            {
                var OriginalCompany = (from m in _db.IPR_CompanyGen where (m.CompanyID.Equals(CompanyToEdit.CompanyID.ToString())) select m).First();
                OriginalCompany.ACCOUNT_ID = CompanyToEdit.ACCOUNT_ID;

                _db.Entry(OriginalCompany).CurrentValues.SetValues(OriginalCompany);
                _db.SaveChanges();

                 return View(OriginalCompany);
            }
            return View();
        }



    }

    internal class DBEntities
    {

    }
}

【问题讨论】:

  • 你为什么返回 RedirectToAction("Index");当你想去查看(CompanyToEdit)时。

标签: asp.net model-view-controller


【解决方案1】:

而不是return RedirectToAction("Index");

return View(OriginalCompany);

【讨论】:

  • 因为我想回到页面上有 10 行的原始页面,但显示所有这 10 家公司的最新状态(account_id)。您的方法仅适用于该 1 家公司的编辑表单,但这对我来说也可以。
  • 但是,我认为应该是`return View(OriginalCompany)`,而不是使用return View(CompanyToEdit);?否则,公司名称在表单中显示为空
  • 使用 return RedirectToAction(nameof(Index));将返回包含所有更新值的索引页,return View(OriginalCompany); 将返回此 Id 的更新值。你要哪个?
  • 我更喜欢索引页。但是RedirectToAction(nameof(Index)) 没有显示所有更新值的索引页。它停留在编辑窗口中。还记得我的索引页面会自动显示 10 家没有价值的随机公司。但是当我回到它时,我不希望它得到另外 10 家公司,而是我想展示原来的 10 家公司
  • 这种情况下,你需要在index方法中修改return View();,因为那个设置为返回Account_ID == null,所以修改一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多