【问题标题】:How to pass some parameters in Url.Action in mvc如何在mvc的Url.Action中传递一些参数
【发布时间】:2018-04-04 08:18:33
【问题描述】:
Url.Action("CreatePerson", "Person", new RouteValueDictionary(new { id = 8,name="rachel",grade="a"}));

当我在控制器中获取参数时,我只得到“id”的第一个值, 但我没有得到“name”和“grade”的值。

为什么?

【问题讨论】:

  • 我们需要minimal reproducible example。正如你的问题是无法回答的。向我们展示您的代码。
  • 这应该生成像yourSite/person/createperson/8?name=rachel&grade=a; 这样的值。你是说它没有像那样生成查询字符串吗?
  • 不!像这样的值 yourSite/person/createperson/8?name=rachel&grade=a;它添加的放大器是什么???
  • @Html.ActionLink("CreatePerson","Person",new{id=8,name="rachel",grade="a"}) 试试这个..

标签: c# asp.net-mvc url.action


【解决方案1】:

只需这样做(不需要路由值字典):

Url.Action("CreatePerson", "Person", new { id = 8,name="rachel",grade="a"});

通过控制器中的Request.Url 属性(通过断点)验证 URL 是否包含所有参数,以确保它具有所有参数。

【讨论】:

  • 我做到了。但是当我得到值时 - 我确实得到了 name 的值,而 grade 只是 id 的值。为什么????
  • @Rachel 查看我对您问题的评论。我们无法在不盲目猜测的情况下回答您的问题。请在您的问题中添加代码。 CreatePerson 是什么样的?您的路线是如何定义的?
  • $("#divMain").load("/Home/q?r=9&c=3");
  • 我用js写了下一段代码:function f1() { $("#divMain").load("@Url.Action("q", "Home",new { r=9 ,c=3})"); }
  • 我用js写了下一段代码:function f1() { $("#divMain").load("@Url.Action("q", "Home",new { r=9 ,c=3})");当我进行调试时,我看到它转换为下一个 url "/Home/q?r=9&c=3" 它写的 "amp" 是什么?
猜你喜欢
  • 2018-04-04
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
相关资源
最近更新 更多