我们有一个枚举类型
public enum Country
{
UK = 1,
US = 2,
Japan = 4,
China = 8,
Germany = 16,
}
我们想在URL参数中传递枚举,然后webapi可以根据国家/地区搜索结果
有时,我们允许将国家/地区合并为Country.UK | Country.China | Country.Germany
(因此数字为25)
在这种情况下,传递枚举类型的最佳做法是什么?我们应该通过号码,例如url上的country = 25(不是用户友好的)或者传递url类似于country = UK& country = China& country = Germany,其中url将非常长且丑陋....
答案 0 :(得分:0)
在创建仅将国家/地区名称添加到网址的网址时使用Country.Us
。
return RedirectToAction("SomeAction", "Controller", new { username = user.UserName, country = Country.Us });
这会生成以下网址: http://somesite.com/Controller/SomeAction?username=username&country=US
这对SEO和用户的观点有好处。而不是country=2
并不意味着什么。
收到请求时:
[HttpGet]
public ActionResult SomeAction(string username, Country? country)
{
如果您想将多个国家/地区传递给某个操作,我建议您仍然按名称发送这些国家/地区。但是,我会将名称更改为countries
http://somesite.com/Controller/SomeAction?username=username&countries=US&countries=UK
[HttpGet]
public ActionResult SomeAction(string username, Country[] country)
{
答案 1 :(得分:0)
枚举将用","解析不是" |"。
用function people(name,age){
this.name= name;
this.age = age;
this.yearsuntilretire = yearsleft;
}
function yearsleft(){
var numyears = 65 - this.age;
return numyears;
}
var sip = new people("manda arpitha",19);
document.write(sip.yearsuntilretire());
标记你的枚举并使用","在您的网址中。
Flags
网址:" ControllerMethode的路径" + [Flags]
public enum Country
{
UK = 1,
US = 2,
Japan = 4,
China = 8,
Germany = 16,
}