我正在开发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);
}
我使用 Redirectoaction
,tempdata
方法来传递值,但两次空值都来了。
你想将id从
CityWiseAreaList
传递到_CreateCityWiseArea
这应该很简单,因为它在同一个Controller
你不需要添加RouteValueDictionary
但无论如何都是你的选择。下面应该有效,这就是我要走的路:
return RedirectToAction("_CreateCityWiseArea", new { id = cityid });