我即将为我的MVC3 Web应用程序实现本地化.通过大量的方式搜索我的方式,我不确定实现这个的方式.我发现如何做到这一点:
我找到的第一个选项是使用App_GlobalResources和ViewData以及使用Map Routing进行文化选择.(链接)
其次是在我的项目中创建一个单独的Resources文件夹,并将其构建为Model和View文件夹.然后在这些文件夹中创建资源文件.使用这些资源字符串就像使用Viewbag一样.然后编辑Global.asax以处理文化变化并创建部分视图以允许更改文化.执行此操作的说明非常彻底,因此这可能是最好的选择.(链接)
第三是使用DisplayAttribute和resx文件.这个有点朦胧,我找不到那种信息,这样我才能理解这实际是如何实现的以及它的限制.(链接)
第四是创建一个自定义类来处理资源.这看起来非常花哨,易于实现和使用,但如果它确实有效,则没有找到真正的信息.(链接)
然后我发现了一条警告使用App_GlobalResouces和App_LocalResources的帖子.(链接)
在经历了可能的本地化方式之后.我找不到一种得到普遍认可或接受的方式.这让我思考,其中哪些,或者一些我没有找到,将是在ASP.NET MVC3中实现本地化的最佳方式?
globalization localization internationalization asp.net-mvc-3
目标是将数据从ViewBag.ArrayJavascript数组中获取.数据在控制器中计算,因此我无法直接从数据库中获取数据.我需要数据用jqplot绘制图表.码:
for(i = 0; i < @ViewBag.Array.Length; i++)
{
jScriptArray[i] = @ViewBag.Array[i];
}
Run Code Online (Sandbox Code Playgroud)
问题是"'我'在当前的上下文中不存在" @ViewBag.Array[i]但是没有问题jScriptArray[i].任何帮助表示赞赏.
是否可以将Action作为函数中的可选参数?button2Action应该是可选的.
public void DrawWindow(Rect p_PositionAndSize, string p_Button2Text = "NotInUse", Action p_Button2Action)
{
// Stuff happens here
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用eg,p_Button2Action = delegate{ Debug.Log("NotInUse"); }但由于p_Button2Action的默认参数值必须是编译时常量,因此无法编译.如何创建一个编译时常量的可选Action?
我尝试使用这里的答案,但它没有用.我有以下代码:
public ActionResult ShowImage()
{
using (FileStream stream = new FileStream(Path.Combine(Server.MapPath("/App_Data/UserUpload/asd.png")), FileMode.Open))
{
FileStreamResult result = new FileStreamResult(stream, "image/png");
result.FileDownloadName = "asd.png";
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
当我打开页面时,我收到一条错误,上面写着:"无法访问已关闭的文件." 我做了一些关于错误的谷歌搜索,但我只发现了与上传相关的错误.是什么导致这个问题?
我正在开发一款Android游戏,Galaxy S和双核Galaxy S2等单核手机之间的性能差异可与日夜相媲美.因此,我没有为单核和双核/四核制作不同的版本,而是考虑使用设备的处理器数来关闭某些图形功能.
但获得处理器数量的可靠性如何?有些单核手机有像英特尔超线程这样的线程,它将一个核心显示为两个吗?或者一些双核手机比Galaxy S2慢很多?
我有以下代码:
// Order a list
var orderedList = myList.OrderBy(x => x.name);
// Take few elements to another list (copies as reference)
List<GameObject> myList2 = orderedList.Where(x => x.z == y).ToList();
// Rename the objects in myList2
foreach(stuff in myList2)
{
stuff.name = "Renamed";
}
Run Code Online (Sandbox Code Playgroud)
问题是为什么修改myList2中对象的属性后更改orderedList的顺序?
例如,如果有序列表是"a,b,c,d",我将" b "和" c "带到myList2.那么orderedList将是" a,d,Renamed,Renamed"而不是" a,renamed,Renamed,d ".
假设我有一个如果是这样的话:
if(condition1 != asd && menu != menu1 && menu != menu2)
Run Code Online (Sandbox Code Playgroud)
这可以缩短为:
if(condition1 != asd && menu != (menu1 && menu2))
Run Code Online (Sandbox Code Playgroud)
我尝试围绕第二个条件围绕它不应该的两个条件,并围绕整个事情,但它不通过编译器.
是否有可能以这种方式缩短第二个条件?或者有更好的方法吗?
PS.我不知道该怎么称呼它,所以随时编辑标题.
c# ×3
action ×1
android ×1
arrays ×1
asp.net-mvc ×1
comparison ×1
controller ×1
if-statement ×1
image ×1
javascript ×1
lambda ×1
linq ×1
list ×1
localization ×1
processor ×1
razor ×1
viewbag ×1