RedirectToAction没有传递参数MVC

时间:2014-06-21 05:09:35

标签: c# asp.net-mvc asp.net-mvc-5

我有一个采取模型项列表并删除它们的操作,我的问题是,为什么参数没有通过

public ActionResult DeleteMultiple(IEnumerable<QAModel> model)
    {
        _qaService.DeleteMultiple(model);
        long subscriptionId = model.First().SubscriptionId; //value is available here 
        long languageId = model.First().LanguageId;         //value is available here
        return RedirectToAction("Index", new { SubscriptionId =subscriptionId, LanguageId =languageId,Message="Data deleted successfully ."});

    }

//重定向发生,但索引方法中的值为null。

   public ActionResult Index(int? SubscriptionId,int? LanguageId,string Message)
    {



    }

我做错了什么,任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

RedirectToAction向浏览器返回302,这会导致浏览器发出另一个GET请求,因此不会保留您的数据。

如果你想调用另一种方法,只需调用该方法并避免往返浏览器。

return Index(...)

答案 1 :(得分:-1)

尝试在RouteValueDictionary方法

中使用路线值字典RedirectToAction()

C#CODE

public ActionResult DeleteMultiple(IEnumerable<QAModel> model)
    {
        _qaService.DeleteMultiple(model);
        long subscriptionId = model.First().SubscriptionId; //value is available here 
        long languageId = model.First().LanguageId;         //value is available here
        return RedirectToAction("Index",new RouteValueDictionary {{"SubscriptionId",subscriptionId},{"LanguageId",languageId},{"Message","Data deleted successfully ."}, } );

    }

希望它可以帮到你,祝你有愉快的一天。