在ASP.net MVC应用程序中设置Culture/UI Culture的最佳位置是什么
目前我有一个CultureController类,如下所示:
public class CultureController : Controller
{
public ActionResult SetSpanishCulture()
{
HttpContext.Session["culture"] = "es-ES";
return RedirectToAction("Index", "Home");
}
public ActionResult SetFrenchCulture()
{
HttpContext.Session["culture"] = "fr-FR";
return RedirectToAction("Index", "Home");
}
}
Run Code Online (Sandbox Code Playgroud)
以及主页上每种语言的超链接,其链接如下:
<li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li>
<li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li>
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但我认为有一个更合适的方法来做到这一点.
我正在使用以下ActionFilter http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx阅读文化 .我有点像MVC菜鸟,所以我不相信我会把它设置在正确的位置.我不想在web.config级别这样做,它必须基于用户的选择.我也不想检查他们的http-header以从他们的浏览器设置中获取文化.
编辑:
只是要明确 - 我不是要决定是否使用会话.我对此感到高兴.我想要解决的是,如果最好在文化控制器中执行此操作,该控制器具有要设置的每个文化的操作方法,或者在MVC管道中是否有更好的位置来执行此操作?
我有一个字符串,我需要将其作为char数组遍历.当然通常的方法是使用toCharArray()
String str = "Hello";
char[] charArr = str.toCharArray();
Run Code Online (Sandbox Code Playgroud)
现在,toCharArray()的源代码如下.
public char[] toCharArray() {
// Cannot use Arrays.copyOf because of class initialization order issues
char result[] = new char[value.length];
System.arraycopy(value, 0, result, 0, value.length);
return result;
}
Run Code Online (Sandbox Code Playgroud)
因此,Java在char []类型的内存中创建一个新对象,并将字符串对象复制到新对象.
我的问题是,是否可以在不复制数组的情况下将字符串用作char [].我的目的是节省内存空间.如果不可能,有这样的理由吗?
提前致谢!
我WPF就像一年前一样使用MVVM,我猜不完整,因为我不使用命令.直到现在我真的做了我所需要的所有我没有命令它工作正常,但对我来说最重要的是,它的清晰和简短,MVVM说的理论no code behind,但是,为什么复杂的1000个类,每个按钮或事件一个?
我真的没有看到收益.这只是概念还是还有更多?
在过去的3天里,我一直在试图找出如何安装node.js. 我尝试了我在互联网上找到的每个解决方案,比如在安装过程中禁用某些组件,安装x86和x64等,但都没有.
我的操作系统是Windows 10 x64.我尝试了不同版本的node.js,它们都返回了下面屏幕截图中显示的相同错误.
我尝试通过命令行安装并获取日志.但我也没能从日志中找到任何有用的东西.请帮忙.可以在此处找到日志:此路径:https://drive.google.com/open?id = 1OkkK36hlQeBX0xTNuOuilGaNr1u3S55e
我有一个观点.当用户点击我视图中的按钮时,我试图从我的视图中获取一些数据,而不通过AJAX POST重新加载我的视图来显示一些数据.
这是我的控制器中的方法:
[HttpPost]
public JsonResult GetUserTraj()
{
var userTrajList =
DBManager.Instance.GetUserTraj(Session["UserName"].ToString());
return Json(userTrajList);
}
Run Code Online (Sandbox Code Playgroud)
这将返回Json结果.我正在尝试实现会话.因此,如果会话已过期,我希望将用户重定向到"登录"视图.在上述情况下,如果会话过期Session["UserName"]变为null并引发异常.
[HttpPost]
public JsonResult GetUserTraj()
{
if (Session["UserName"] != null)
{
var userTrajList =
DBManager.Instance.GetUserTraj(Session["UserName"].ToString());
return Json(userTrajList);
}
else
{
RedirectToAction("Login", "Login");
return Json(null);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了上面的代码.但它不起作用.它不会将用户重定向到"登录"视图.我试过了return RedirectToAction("Login", "Login");.但这不起作用,因为控制器动作方法不能返回其他内容JsonResult.请帮我找到相同的解决方案.
我有一个@Html.TextBoxFor如下:
@Html.TextBoxFor(u => u.SomeProperty, new { @class = "jtb", @id = "TrajName", placeholder = "Traj Name" })
Run Code Online (Sandbox Code Playgroud)
现在我想要实现的是我想知道在输入新字符的同时将新字符添加到该文本框中。我想此时将按钮状态更改为活动状态。我试过blur和change事件。但只有在焦点改变时才会触发。
$(document).ready(function () {
$('#TrajName').val("");
$('#StartLocation').val("-Select Location-");
$('#EndLocation').val("-Select Location-");
document.getElementById("BtnAddTraj").disabled = true;
$("#TrajectoryName").blur(function () {
if ($('#TrajName').text != "")
document.getElementById("BtnAddTraj").disabled = false;
else
document.getElementById("BtnAddTraj").disabled = true;
});
});
Run Code Online (Sandbox Code Playgroud)
我有一个场景,用户可以在输入一些文本后直接尝试单击按钮(即光标仍在文本框内并且焦点未更改)。
那么是否有任何事件可以在添加角色而不是在焦点更改时触发时提供实时触发?
我正在使用 WPF/MVVM。我将 textbox.Text 绑定到视图模型中的可为空的双精度值。UpdateSourceTrigger = PropertyChanged 而不是 Lostfocus。因此,当使用我正在使用的转换器内的 Double.Parse(textbox.Text) 输入每个数字时, double 属性将被更新。我在这里使用 PropertyChanged 和转换器,因为我需要进行一些其他验证检查。
我的问题是我需要输入“1.69”。当我输入“1”时,它会作为“1”添加到属性中。接下来我输入“.”,但它没有添加为“1”。因为 double.parse 将数字保存为“1”
所以我不能添加小数。请帮忙。提前致谢。
我有自定义UserControl与文本框和按钮.我将这个UC添加到主窗口,现在我希望当我点击UC内的按钮时,来自UC文本框的文本被转移到主窗口中的文本框或标签中.如果我是正确的,我应该制作自定义事件并将其绑定到某个地方或类似的东西,但我找不到任何有用的东西,所以我很乐意提供一些帮助或一个好的教程.
我有一个下拉列表,这个列表使用ajax调用绑定值
<script type="text/javascript">
function getCityName(data) {
$('#ddlCity').empty();
if (data != 0) {
$.ajax({
type: "POST",
url: "/Home/GetCityList",
data: { 'CityId': data },
cache: false,
//contentType: "application/json",
datatype: "JSON",
success: function (result) {
var cityData = result.Data;
var defaultV = new Option("--Select--", 0, true);
$('#ddlCity').append(defaultV);
for (var i = 0; i < cityData.length; i++) {
var opt = new Option(cityData[i].CityName, cityData[i].Id);
$('#ddlCity').append(opt);
}
}
});
}
else {
alert('Select State');
}
}
Run Code Online (Sandbox Code Playgroud)
<div>@Html.LabelFor(c => c.CityId)</div>
<div><select id="ddlCity"></select></div>
Run Code Online (Sandbox Code Playgroud)
听说我想在模型类中绑定模型道具CityId如何绑定它...
我有一个带有许多按钮的WPF窗口(btn_1,btn_2,btn_3 ... btn_81),而是为每个按钮创建一个click事件,如下所示:
private void btn_1_Click(object sender, RoutedEventArgs e)
{
if (backColor != null)
btn_1.Background = backColor;
}
private void btn_2_Click(object sender, RoutedEventArgs e)
{
if (backColor != null)
btn_2.Background = backColor;
}
Run Code Online (Sandbox Code Playgroud)
我的意思是只创建一个click事件,并以某种方式获取我单击以执行操作的按钮的名称.使用click-event执行的操作对于每个按钮都是相同的:它们必须更改其背景.
我希望我能解释一下我的问题.TIA!
我给了一个n个整数的集合S,并且必须打印S的最大子集S'的大小,其中S'中任何2个数字的总和不能被k整除.
输入格式
第一行包含2个以空格分隔的整数,分别为n和k.第二行包含n个以空格分隔的整数,用于描述集合的唯一值.
我的代码:
import sys
n,k = raw_input().strip().split(' ')
n,k = [int(n),int(k)]
a = map(int,raw_input().strip().split(' '))
count = 0
for i in range(len(a)):
for j in range(len(a)):
if (a[i]+a[j])%k != 0:
count = count+1
print count
Run Code Online (Sandbox Code Playgroud)
输入:
4 3
1 7 2 4
Run Code Online (Sandbox Code Playgroud)
预期产出:
3
Run Code Online (Sandbox Code Playgroud)
我的输出:
10
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?任何人?
我有一个非常有趣的问题.
String[] values = new String[3];
values = line.Split(';');
Console.Write("Val:" + values[0] + ", " + values[1] + ", " + values[2]);
Run Code Online (Sandbox Code Playgroud)
有人能告诉我为什么当它在范围内时会得到IndexOutOfRangeException吗?
编辑:例如,该行有3个扇区1;2;3.控制台写出Val: ...但在输出中我仍然得到一个IndexOutOfRangeException.