2012-02-03 36 views
1

我对MVC 3很熟悉。我在教程中遇到了第一件事 - 难以置信!MVC 3,url参数不分开

这是我的控制器法:

public string Welcome(string name, int numTimes = 1) 
    { 
     return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes); 
    } 

而且我使用的网址:

http://localhost:49770/HelloWorld/Welcome?name=Adam?numTimes=4 

这应该产生这样的:

您好亚当,NumTimes是: 4

但它实际上变成这样:

你好亚当numTimes = 4,NumTimes是:1

它不会在PARAMS分开!这一定是我错过的非常简单的事情!

回答

3

你有2个问号(?)。改变第二一个符号(&)

http://localhost:49770/HelloWorld/Welcome?name=Adam&numTimes=4 
+0

+1为*为什么*原来没有工作。 – 2012-02-03 08:32:39

+0

哈哈哈,我在嘲笑自己!当然你是对的。自从做webb-stuff以来,我已经有一段时间了。 – kaze 2012-02-03 08:57:07

1

当形成串发送参数,特别是如果你使用JSON这样做与AJAX,在发送必须是&每个字段之间。 &的作用类似于方法参数中的逗号。而来自代码的电话可能是Welcome("Adam",4),从url看起来会像/Welcome?name=Adam&numTimes=4。这个?告诉MVC(假设常规路由)使用找到的操作,在这种情况下为Welcome。接下来是名称值对,用&符号分隔。