在MVC5

时间:2017-06-30 13:17:25

标签: c# asp.net-mvc

我正在开发MVC应用程序。

我正在尝试将cityid从同一控制器中的 CityWiseAreaList 传递给 _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方法传递值,但时间空值都来了。

1 个答案:

答案 0 :(得分:0)

您希望将CityWiseAreaList中的ID传递给_CreateCityWiseArea这应该很简单,因为它不在同一个Controller中,您不需要添加{ {1}}但无论如何它都是你的选择。以下应该有效,这就是我的方式:

RouteValueDictionary