【发布时间】:2017-03-15 03:44:04
【问题描述】:
我主要从事桌面应用程序的工作,并想学习使用 ASP.Net MVC5 的 Web 开发,因此通过Jon Galloway 阅读了这本书。因此,我正在阅读有关如何使用查询字符串(如
)将参数传递给操作方法的信息/Store/Browse?genre=Disco
或直接将它们嵌入到 url 中,如
/商店/详情/5
现在我写的控制器代码(取自书中)如下:
namespace MvcMusicStore.Controllers
{
public class StoreController : Controller
{
// GET: Store
public string Index()
{
return "Hello from Store.Index()";
}
public string Browse(string genre)
{
string message = HttpUtility.HtmlEncode("Store.Browser, Genre = " + genre);
return message;
}
public string Details(int id)
{
string message = "Store.Details, ID = " + id;
return message;
}
}
}
网址打开正常,操作按预期返回消息。但只是为了尝试,我尝试通过将流派值嵌入到 url 中来传递流派值,例如
/商店/浏览/说唱
但这不像 Details() 操作那样起作用。我认为它可能与流派的数据类型有关,所以我尝试将 Details() 中 id 的数据类型更改为字符串,如下所示:
public string Details(string id)
{
string message = "Store.Details, ID = " + id;
return message;
}
}
并打开网址
/商店/详情/5
Details() 操作返回 id 值为 5 的消息,但是当我对 Browse() 操作执行相同操作时
/商店/浏览/说唱
该操作不会返回流派值为“Rap”的消息。我尝试传递流派值并删除 html 编码以查看是否与它有关,但它没有。
我查看了here 的帖子,但这也无济于事。任何 cmets 表示赞赏。
【问题讨论】:
标签: asp.net asp.net-mvc-5 query-string