问题:
需要绑定具有Gender as enum属性的强类型模型.另外,我想显示资源文件中的显示文本.
我的模型是
public enum GenderViewModel
{
[Display(Name = "Male", ResourceType = typeof(Resources.Global), Order = 0)]
Male,
[Display(Name = "Female", ResourceType = typeof(Resources.Global), Order = 1)]
Female
}
Run Code Online (Sandbox Code Playgroud)
但它有点复杂,我无法纠正我的HTML,但我想要.
然后我从stackoverflow看一下简单易用的实现,将枚举传递给html.radiobutton for MVC3
并在cshtml中使用了HtmlHelper,如下所示
@Html.RadioButtonForEnum(m => m.Gender)
Run Code Online (Sandbox Code Playgroud)
HTML生成
<label for="_Gender_Male">
<input type="radio" value="Male" name="Gender" id="_Gender_Male"
data-val-required="Gender is required" data-val="true" checked="checked">
<span class="radiotext">Male</span>
</label>
<label for="_Gender_Female">
<input type="radio" value="Female" name="Gender" id="_Gender_Female">
<span class="radiotext">Female</span></label>
Run Code Online (Sandbox Code Playgroud)
它非常简单,对我来说效果很好.但我没有从资源文件中获取值.我的应用程序是多语言的,我使用全局资源文件来提供不同的语言支持.
问题:
男性显示应该是男性和女性显示应该是Kvinna应该来自资源文件,因为我目前的文化是sv-se
任何人都可以帮助/提供一个可以很好地控制HTML的简单解决方案吗?
我不确定为什么jquery验证在属性可以为空时触发int?并且没有标记任何数据注释属性.它的asp.net MVC 4应用程序
public class MyViewModel{
public int? ResourceId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
MyView.cshtml
@model MyViewModel
@Html.DropDownListFor(m => m.ResourceId,
((IEnumerable<SelectListItem>)ViewData["resourceLookup"]),"--Select--")
Run Code Online (Sandbox Code Playgroud)
生成的HTML
<select data-val="true" data-val-number="The field ResourceId must be a number."
id="ResourceId" name="ResourceId">
<option value="">--Select--</option>
<option value="1">Type 1</option>
</select>
Run Code Online (Sandbox Code Playgroud)
此选择框是可选的.用户可以忽略它.但是,当他们忽略我收到错误消息The field ResourceId must be a number.
在Global.asax.cs中,我尝试设置AddImplicitRequiredAttributeForValueTypes属性以防止将data-*属性添加到不需要的字段.但正如名称所说,它只能阻止添加data-required-*属性.
protected void Application_Start()
{
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes=false;
}
Run Code Online (Sandbox Code Playgroud)
如何在此处阻止数据类型检查属性(data-val-number)?
编辑:
尝试设置DataType也没用,仍然有同样的问题.看起来这不会被应用,<select>并且可能仅适用于<input>和设置type="text"
[DataType(DataType.Text)]
public int? ResourceId { get; set; }
Run Code Online (Sandbox Code Playgroud) c# asp.net-mvc jquery jquery-validate unobtrusive-validation
我今天在 C# 中遇到了一个带有可为空小数的奇怪行为。
从某个值中减去空值给出空值。
例子:
2300.00 - null = null :(
using System;
public class Program
{
public static void Main()
{
decimal? a=2300.00m;
decimal? b=null;
var result=a-b;
Console.WriteLine("Result is {0}",result);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我得到的是 null 而不是 2300?
我正在构建一个Sencha Touch应用程序,并在登录后挣扎着重定向或更改另一个视图.登录后我需要把它带到主页.但我在Login Controller的authenticateUser()下面的代码不起作用.
尝试使用Ext.Viewport.push(homePanel),Ext.Viewport.setActiveItem(homePanel).但没有任何作用.
LoginView
Ext.define("Mobile.view.LoginView", {
extend: "Ext.form.FormPanel",
alias: "widget.mylogin",
id: 'loginFormPanel',
config: {
name: 'loginform',
frame: true,
url: 'login/Authenticate',
title: 'Login',
items: [
{
xtype: 'fieldset',
itemId: 'LoginFieldset',
margin: '10 auto 0 auto ',
title: '',
items: [
{
//User Name field def
},
{
//Pwd Field Def
}
]
},
{
xtype: 'button',
id: 'loginButton',
text: 'Login',
action: 'login'
}
]
}
});
Run Code Online (Sandbox Code Playgroud)
登录控制器
Ext.define("Mobile.controller.LoginController", {
extend: "Ext.app.Controller",
views: ['LoginView', 'HomeView'],
models: ['UserModel'], …Run Code Online (Sandbox Code Playgroud) 使用BCrypt技术将密码作为哈希存储到数据库中.虽然与MD5,SHA-1等快速哈希算法相比可能有点慢,但我们决定更安全.
在.Net中我使用http://bcrypt.codeplex.com/实现了
BCrypt.Net.BCrypt.HashPassword("Password", BCrypt.Net.BCrypt.GenerateSalt(12));
Run Code Online (Sandbox Code Playgroud)
在我们的网站中,管理员将为新用户创建用户名和密码.
存储散列密码没有问题.但是如果管理员想要更新密码,他需要查看旧密码.我没有看到任何解密存储在Bcrypt.Net中的数据库中的散列值的方法.
有没有办法从Bcrypt哈希密码生成文本?但是我同意这不应该是可能的,但有一些情况我们会这样做:(
更新:我决定使用存储在某些表中的默认密码作为纯文本和散列文本并存储为用户的密码.当用户登录该站点时,他将被迫更改密码,直到他重置为止.这听起来不错吗?
我想在具有类'只读状态'的字段中删除属性名称以'data-val'开头的所有属性
jQuery("[data-val^='tr']" )
Run Code Online (Sandbox Code Playgroud)
这将给出以'tr'开头的属性'data-val'值
但我需要删除匹配元素中以'data-val'开头的所有属性.
我该怎么做?
我需要一个正则表达式来验证带有掩码的屏幕中显示的正确 SSN 号码。
*然而,我们只显示 SSN 的最后 4 位数字,并用符号掩盖其他字符
用户可以在 处仅输入一个数字*,也可以保持原样。
用户可以输入有效的输入,否则永远不会改变
***-**-1234 123-55-1234
用户将显示更改为无效的 SSN
5**-**-1234 A**-**-1234 AAA-5*-1234
为此需要JavaScript 正则表达式代码/文章。
c# ×3
jquery ×3
asp.net-mvc ×2
javascript ×2
.net ×1
bcrypt ×1
c#-4.0 ×1
decimal ×1
encryption ×1
extjs ×1
html ×1
nullable ×1
razor ×1
regex ×1
security ×1
sencha-touch ×1
validation ×1