【问题标题】:Build Dynamic parameter objects in ASP.Net MVC在 ASP.Net MVC 中构建动态参数对象
【发布时间】:2017-04-25 17:07:33
【问题描述】:

您好,我正在尝试创建一个常见的 ActionResult,它可以使用动态 ActionName、ControllerName 和对象参数(如果有)返回 redirectToAction

public ActionResult partner()
        {
//Building my params
obj.parameters = string.Format("cId = {0}, aId= {1}", CustomerID, Session["LocationId"]);
 return RedirectToAction(obj.actionName, obj.controllerName, string.IsNullOrEmpty(obj.parameters) ? null : new { obj.parameters });
}

我不确定这在 MVC 中是否可行。 有人有这样的要求吗?有什么办法可以实现这样的目标吗?

【问题讨论】:

  • 你不能从 RouteData 获得这些值
  • 没有。这些参数是基于业务逻辑构建的。在某些情况下,参数可能很少,有时甚至没有。使用上面的代码,它将 url 呈现为 /Controller/Action?parameters="cid=2,aid=3"

标签: asp.net-mvc asp.net-mvc-3 parameters


【解决方案1】:

以下是一些可能对您有所帮助的想法:

选项 1:使用包含路由值的匿名类型对象。

obj.parameters = new { cId = CustomerID, aId = Session["LocationId"] };
return RedirectToAction(obj.actionName, obj.controllerName, obj.parameters);

选项 2:对类似问题使用 RouteValueDictionary,如 this answer 中所述。

obj.parameters = new RouteValueDictionary();
obj.parameters['cId'] = CustomerID;
obj.parameters['aId'] = Session["LocationId"];
return RedirectToAction(obj.actionName, obj.controllerName, obj.parameters);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多