【问题标题】:URL-ROUTING for Asp.Net MVC Action parameter bindingAsp.Net MVC Action 参数绑定的 URL-ROUTING
【发布时间】:2012-06-23 18:10:22
【问题描述】:

我是第一次使用 ASP.NET MVC 3。我想用一个参数调用一个控制器动作。这个参数是一个对象,不是一个简单的类型。比方说: 控制器 =“人”, 动作="添加", 此操作的单个参数是一个对象:“Person” = {Name: "aaa", Age: 24}

我实现了为此类参数 (Person) 所需的 ModelBinder。我使用以下指令从客户端调用此操作:

var person= {}; 
person.Name = "aaa"; person.Age = 24;
var **url = '/Person/Add/' + $.param(person)**;
**window.location = url;**

这是我在 Asp.NET MVC 中的第一个程序。我认为这是编写“url”的正确方法。 您能否帮助我以正确的格式创建变量“url”(需要调用服务器操作)

认为

【问题讨论】:

  • 您在问题中提到了 ModelBinder...您是否希望根据用户输入添加 Person 模型?还是我没有正确阅读?\
  • 实际上我在服务器部分添加了这段代码。但是我在客户端部分使用了一个被服务器错误解释的 URL。这似乎是编写 URL 的方式。如果我有一个带有向量的复杂 JSON 对象,有没有办法将它转换为适合 Asp.NET MVC 服务器路由器的 URL?认为

标签: jquery asp.net-mvc-3 url-routing parameter-passing controller-action


【解决方案1】:

你可以像这样在查询字符串中传递它

var thatUrl = "/Person/Add?Name=aaa&age=24";
thatUrl=encodeURI(thatUrl);  //Let's encode :)
window.location.href=thatUrl;

假设你有HttpGET Action 方法,看起来像

public ActionResult Add(string Name,string Age)
{
  //you will have the values in the argumens. Do something now
}

public ActionResult Add(Person model)
{
  //you will have the values in the object
  //check for model.Name & model.Age
}

假设姓名和年龄是Person 类的两个属性

【讨论】:

  • 有没有一种简单的方法可以将更复杂的对象从客户端对象发送到服务器(比对象更复杂 Person = {Name: "aaa", Age: "24"} 。我应该实现一个 javascript 函数来将此对象转换为 URL,还是存在尚未进行此转换的函数?认为
  • 如果您正在进行 jQuery ajax 调用,您可以将数据作为 JSON 发送
  • 我想要一个新的 URL 地址。所以我想使用像window.location这样的东西,而不是ajax调用。认为
  • 我想要一个新的 URL 地址。所以我想使用像window.location这样的东西,而不是ajax调用。在这种情况下,您知道如何从复杂的 JSON 对象中获取 URL 以将其与 window.location 指令一起使用吗?或者你知道如何以另一种方式做到这一点?我想移动到一个新的 URL(为 RESTfull)。我不认为使用 ajax 会帮助我。认为
  • 如果是rest,你可以在你的Content body中传递项目,如果是POST,如果是GET,则传入参数。我认为你的这个是 POST。所以你可以在内容正文中传递它。
猜你喜欢
  • 1970-01-01
  • 2016-06-07
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 2016-11-20
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多