C# 重定向操作未传递参数MVC

C# 重定向操作未传递参数MVC,c#,asp.net-mvc,asp.net-mvc-5,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

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

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 ."});

    }

我做错了什么?请任何人帮我做这件事。

尝试在方法中使用路由值字典

C#代码

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 ."}, } );

    }
public ActionResult DeleteMultiple(IEnumerable模型)
{
_qaService.DeleteMultiple(模型);
long subscriptionId=model.First().subscriptionId;//此处提供值
long languageId=model.First().languageId;//此处提供值
返回RedirectToAction(“索引”,新RouteValueDictionary{{{“SubscriptionId”,SubscriptionId},{“LanguageId”,LanguageId},{“消息”,“数据已成功删除”。},});
}

希望它可以帮助您,祝您度过愉快的一天。

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

如果要调用另一个方法,只需调用该方法并避免往返到浏览器

return Index(...)

是否仅从
DeleteMultiple
重定向到索引?确实没有从其他地方重定向到索引吗?Index()方法中的参数类型是System.Int32,但您正在传递System.Int64?@DimitarDimitrov,不,有多个方法重定向到操作index@StephenMuecke我也尝试过System.Int32,但是没有在Index中获取值当调试时,断点被击中,你确定它被
DeleteMultiple
或其他方法击中了吗?thanx,但我也尝试过这个方法,但当我执行返回索引(…)时,索引方法调用了两次,第一次调用带参数的方法,第二次调用不带参数的方法
return Index(...)