在 MVC5 中的同一控制器中从一个操作方法获取另一个操作方法的 null 值



我正在开发MVC应用程序。

我正在尝试将 cityid 传递给同一控制器中来自 CityWiseArea List_CreateCityWiseArea操作方法。

但是数据无法正确传递。

_CreateCityWiseArea操作方法获取空值。

请检查下面的代码...


这是我的区域控制器:

public ActionResult CityWiseAreaList(int cityid)
{
    if (cityid == 0)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    var data = db.Areas.Where(x => x.CityID == cityid).ToList();
    //TempData["ID"] = cityid;
    RedirectToAction("_CreateCityWiseArea", new RouteValueDictionary(
   new { controller = "Area", action = "_CreateCityWiseArea", id = cityid }));
    return View(data);
}
public ActionResult _CreateCityWiseArea(int? id)
{
    // var cityid = Convert.ToInt32(TempData["ID"]);
    if (id == 0)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    var Name = db.Cities.Where(c => c.CityID == id).Select(x => x.CityName).FirstOrDefault();
    ViewBag.message = Name;
    return View();
}
//Add Area to Corresponding city 
// POST: Area/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult _CreateCityWiseArea(Area area)
{
    if (ModelState.IsValid)
    {
        db.Areas.Add(area);
        db.SaveChanges();
        return RedirectToAction("CityWiseAreaList");
    }
    ViewBag.CityID = new SelectList(db.Cities, "CityID", "CityName", area.CityID);
    return PartialView(" ~/Views/Area/_CreateCityWiseArea.cshtml", area);
}

我使用 Redirectoactiontempdata方法来传递值,但两次空值都来了。

你想将id从CityWiseAreaList传递到_CreateCityWiseArea这应该很简单,因为它在同一个Controller你不需要添加RouteValueDictionary但无论如何都是你的选择。下面应该有效,这就是我要走的路:

 return RedirectToAction("_CreateCityWiseArea", new { id = cityid });

相关内容

最新更新