小编Fun*_*nka的帖子

如何本地化ASP.NET Identity UserName和Password错误消息?

是否可以为"系统"ASP.NET Identity v1错误消息提供本地化字符串,例如" 名称XYZ已被占用 "或" 用户名XYZ无效,只能包含字母或数字 "?

asp.net-identity

60
推荐指数
9
解决办法
4万
查看次数

RenderPartial来自另一个控制器(以及另一个文件夹)的视图

我需要表示两个数据库实体,我需要在一个页面中输出它们.

我有类似的东西

视图Def ViewA ViewB测试ViewC

我希望ViewC显示ViewA,它显示ViewB.

现在我正在使用这样的东西:

// View C
<!-- bla -->
<% Html.RenderPartial(Url.Content("../Definition/DefinitionDetails"), i); %>


// View A
<!-- bla -->
<% Html.RenderPartial(Url.Content("../Definition/DefinitionEditActions")); %>
Run Code Online (Sandbox Code Playgroud)

这样做有好处吗?我发现用相对路径名链接会烧掉你.有小费吗?

我有机会像...那样做些什么

Html.RenderPartial( "定义", "DefinitionDetails",i)的; ?

谢谢您的帮助

asp.net-mvc renderpartial

25
推荐指数
3
解决办法
4万
查看次数

Asp.Net MVC中带有千位分隔符的十进制值

我有一个自定义模型类,其中包含一个十进制成员和一个接受此类的条目的视图.一切都运行良好,直到我添加javascripts来格式化输入控件内的数字.当焦点模糊时,格式代码格式化输入的数字与千位分隔符','.

问题是我的模态类中的十进制值没有与千位分隔符很好地绑定/解析.当我用"1,000.00"测试它时,ModelState.IsValid返回false,但是对于"100.00"没有任何更改它是有效的.

如果您有任何解决方案,请与我分享?

提前致谢.

样本类

public class Employee
{
    public string Name { get; set; }
    public decimal Salary { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

样本控制器

public class EmployeeController : Controller
{
    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult New()
    {
        return View();
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult New(Employee e)
    {
        if (ModelState.IsValid) // <-- It is retruning false for values with ','
        {
            //Subsequence codes if entry is valid.
            //
        }
        return View(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

示例视图

<% using (Html.BeginForm())
   { %>

    Name:   <%= Html.TextBox("Name")%><br /> …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc decimal defaultmodelbinder

13
推荐指数
3
解决办法
1万
查看次数

如何更改ASP.NET标识中的错误消息

我有一个问题.我在Identity ASP .NET中尝试更改错误消息,我不知道它是怎么做的.我想要更改错误消息 - "已经登录".CreateAsync方法返回此错误消息.请帮我.

asp.net identity asp.net-identity

13
推荐指数
2
解决办法
1万
查看次数

如何在ModelBinder/UpdateModel方法中将子对象字段列入白名单/黑名单?

我有一个问题,关于如何获得MVC控制器的UpdateModel/TryUpdateModel的白名单和黑名单功能来处理子对象的各个属性.例如,假设我有一份调查问卷,收集有关填写表格的人和他或她公司的详细信息.

我的[简化]表单字段将被命名,例如:

YourName
YourEmail
Company.Name
Company.Phone
Run Code Online (Sandbox Code Playgroud)

现在在我的模型中,假设我不希望Company.ID或Company.IsPremiumMember被篡改,所以我想将它们从模型绑定中排除.我尝试了将白名单,黑名单和两者结合使用以使其发挥作用.我没有取得任何成功.这是我遇到的:

当我明确地在我的白名单中包含我上面写的相同的四个字段名称时,整个公司都没有受到限制(即问卷调查.公司保留为空),除非我在白名单中也包含"公司".但是这会对ENTIRE公司产生不良影响,而不仅仅是我想要的两个属性.

所以,我接着尝试将Company.ID和Company.IsPremiumMember包含在我的黑名单中,但这似乎被白名单所取代,并且"我认为事后"并没有过滤掉这些属性.

我知道还有其他方法来表达"绑定性",例如通过成员的[Bind]属性,但这并不理想,因为我希望在其他具有不同绑定规则的情况下使用相同的模型类,例如允许管理员设置她想要的任何属性.

我希望一个明显的答案是我应该编写自己的模型绑定器,并且我已经开始尝试研究如何做到这一点,但我真的希望使用"开箱即用"的解决方案什么(在我看来)似乎是一个非常常见的情况.我正在思考的另一个想法是制作我自己的ValueProvider字典以交给UpdateModel方法,但同样,如果有更简单的方法,我宁愿避免.

谢谢你的帮助!-麦克风


附录#1

以下是我在表单上提供的字段:

YourName
YourEmail
Company.Name
Company.Phone

这就是黑帽子送我的方式:

YourName=Joe+Smith&YourEmail=joe@example.com&Company.Name=ACME+Corp&Company.Phone=555-555-5555&Company.CreditLimit=10000000

(一定要注意到最后加上额外的参数!)

这是问题所在:

正如我最初发布的那样,似乎不可能(使用默认的模型绑定器)来阻止设置CreditLimit--它可能是整个公司,也可能没有 - 没有一些大的解决方法.我错了吗?


附录#2

我现在非常相信,我所拥有的简单目标不可能"开箱即用".我的解决方案是遍历已发布的表单字段并构建我自己的ValueProvider字典,从而将我想要允许的字段列入白名单,并将其交给UpdateModel.


附录#3

我还没有检查过AutoMapper,但是有了类似的东西,创建一些ViewModel/DTO来处理这种类型的复杂白名单的解决方案---以及轻松附加相同服务器端验证的能力(FluentValidation)我已经在我的域名对象上使用---似乎是一个可行的解决方案.谢谢大家!

asp.net-mvc

7
推荐指数
1
解决办法
4081
查看次数

MVC 5中缺少IdentityConfig

我正在将我的项目迁移到MVC 5,我刚刚安装了Visual Studio 2013 RC.据我所看到的,必须有一个文件名为IdentityConfig.csApp_Start目录,但即使我创建一个新项目,该文件丢失.我想也许它可能与我正在使用的Visual Studio版本有关.反正有没有解决这个问题?

此外,我无法向web.config添加角色或成员资格提供程序.我如何使用IdentityConfig执行此操作?

asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

5
推荐指数
1
解决办法
1万
查看次数