天道酬勤,学无止境

model-binders

如何在ASP.NET MVC中测试自定义模型绑定器?(How to test custom Model Binders in ASP.NET MVC?)

问题 我在ASP.NET MVC应用程序中编写了一些自定义模型绑定程序(实现IModelBinder)。 我想知道什么是对它们(粘合剂)进行单元测试的好方法? 回答1 我这样做是这样的: var formElements = new NameValueCollection() { {"FirstName","Bubba"}, {"MiddleName", ""}, {"LastName", "Gump"} }; var fakeController = GetControllerContext(formElements); var valueProvider = new Mock<IValueProvider>(); var bindingContext = new ModelBindingContext(fakeController, valueProvider.Object, typeof(Guid), null, null, null, null); private static ControllerContext GetControllerContext(NameValueCollection form) { Mock<HttpRequestBase> mockRequest = new Mock<HttpRequestBase>(); mockRequest.Expect

2021-05-31 15:44:02    分类:技术分享    asp.net   asp.net-mvc   unit-testing   model-binders

How to test custom Model Binders in ASP.NET MVC?

I've written some custom model binders (implementing IModelBinder) in our ASP.NET MVC application. I'm wondering what is a good approach to unittest them (binders)?

2021-04-23 03:53:02    分类:问答    asp.net   asp.net-mvc   unit-testing   model-binders

具有错误日期格式的MVC DateTime绑定(MVC DateTime binding with incorrect date format)

问题 Asp.net-MVC现在允许DateTime对象的隐式绑定。 我采取了以下行动 public ActionResult DoSomething(DateTime startDate) { ... } 这成功地将一个字符串从ajax调用转换为DateTime。 但是,我们使用日期格式dd / MM / yyyy; MVC正在转换为MM / dd / yyyy。 例如,使用字符串'09 / 02/2009'提交对操作的调用会导致DateTime为'02 / 09/2009 00:00:00',或者在我们的本地设置中为9月2日。 我不想为了日期格式而滚动自己的模型活页夹。 但是似乎不需要更改操作以接受字符串,然后如果MVC能够为我执行此操作,则可以使用DateTime.Parse。 有什么方法可以更改DateTime的默认模型联编程序中使用的日期格式? 默认模型联编程序是否不应该使用您的本地化设置? 回答1 我刚刚通过更详尽的谷歌搜索找到了答案: 梅尔文·哈伯(Melvyn Harbor)全面解释了为什么MVC会以这种方式使用日期,以及在必要时如何覆盖日期: http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx 在寻找要解析的值时

2021-03-31 10:37:11    分类:技术分享    asp.net-mvc   datetime   localization   formatting   model-binders

数据输入后修剪字符串的最佳方法。 我应该创建自定义模型活页夹吗?(Best way to trim strings after data entry. Should I create a custom model binder?)

问题 我正在使用ASP.NET MVC,我希望在将所有用户输入的字符串字段插入数据库之前先对其进行修剪。 并且由于我有许多数据输入表单,因此我正在寻找一种修整所有字符串的方法,而不是显式修整每个用户提供的字符串值。 我很想知道人们如何以及何时修剪琴弦。 我考虑过可能要创建一个自定义模型联编程序并在那里修剪任何字符串值...那样,我所有的修剪逻辑都包含在一个地方。 这是一个好方法吗? 是否有任何代码示例可以做到这一点? 回答1 public class TrimModelBinder : DefaultModelBinder { protected override void SetProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, System.ComponentModel.PropertyDescriptor propertyDescriptor, object value) { if (propertyDescriptor.PropertyType == typeof(string)) { var stringValue = (string)value; if (!string.IsNullOrWhiteSpace(stringValue)) { value =

2021-03-27 05:53:12    分类:技术分享    asp.net   asp.net-mvc   model-binders

MVC DateTime binding with incorrect date format

Asp.net-MVC now allows for implicit binding of DateTime objects. I have an action along the lines of public ActionResult DoSomething(DateTime startDate) { ... } This successfully converts a string from an ajax call into a DateTime. However, we use the date format dd/MM/yyyy; MVC is converting to MM/dd/yyyy. For example, submitting a call to the action with a string '09/02/2009' results in a DateTime of '02/09/2009 00:00:00', or September 2nd in our local settings. I don't want to roll my own model binder for the sake of a date format. But it seems needless to have to change the action to

2021-03-22 09:41:15    分类:问答    asp.net-mvc   datetime   localization   formatting   model-binders

Best way to trim strings after data entry. Should I create a custom model binder?

I'm using ASP.NET MVC and I'd like all user entered string fields to be trimmed before they're inserted into the database. And since I have many data entry forms, I'm looking for an elegant way to trim all strings instead of explicitly trimming every user supplied string value. I'm interested to know how and when people are trimming strings. I thought about perhaps creating a custom model binder and trimming any string values there...that way, all my trimming logic is contained in one place. Is this a good approach? Are there any code samples that do this?

2021-03-22 03:25:02    分类:问答    asp.net   asp.net-mvc   model-binders