2017-06-30 5 views
-1

MVCアプリケーションを開発中です。1つのアクションメソッドからMVC5の同じコントローラで別のアクションメソッドにNull値を取得する

私は、同じコントローラでCityWiseAreaListから_CreateCityWiseAreaアクションメソッドにcityidを渡すためにしようとしています。

しかし、データが正しく渡されません。

_CreateCityWiseArea null値を取得するアクションメソッド。

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値を渡す方法が、NULL値が来ているの両方の時間を使用します。

これは私のエリアコントローラです...コードの下に


を確認してください。

+1

あなたは** RedirectToActionを返すわけではありません。 –

+1

あなたの最初のアクション結果 'CityWiseAreaList'では、あなたは実際に' RedirectToAction'を返していません。いくつかのコードがない場合を除きますか? – Valeklosse

+0

私はRedirectionToActionに返信して返信すると到達不能なコードerror.Actually私は都市に対応する表示するとしたいときに私は** cityid ** ** _CreationCityWiseArea **アクションメソッドを渡したいと思います。@ Valeklosse、 @ J.Steen – Ash

答えて

0

あなたはそれが同じControllerにありますので、あなたがRouteValueDictionaryを追加する必要はありませんが、それはとにかくあなたの選択だ、これは簡単であるべきCityWiseAreaListから_CreateCityWiseAreaにIDを渡したいです。以下のようにすればいいでしょう:

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

RouteValueDictionaryを使用せずに動作しますが、もう別の問題が発生しています。問題は、都市IDがGET ** _ CreateCityWiseArea **アクションメソッドになっていますが、このcityidはPOSTには来ない** _ CreateCityWiseArea **アクションメソッド。だから私のデータベースでこれだけのため、AreaNameは、cityid.iでないストアですcityidとAreaNameの両方がdatabse.plzに保存する必要があります私のコードをチェックし、正しい場合はそれを修正します。 – Ash

関連する問題