Create Custom Data Annotation Validators?
Aug 5, 2010
Wanting to create custom data annotation validation. Are there any useful guides / samples on how to create them?
Firstly: StringLength with minimum and maximum length. I'm aware .NET 4 can do this, but want to do the same in .NET 3.5, if possible being able to define minimum length only (at least x chars), maximum length only (up to x chars), or both (between x and y chars).
Secondly: Validation using modulus arithmetic - if the number is a valid length, I wish to validate using the Modulus 11 algorithm (I have already implemented it in JavaScript, so I guess it would just be a simple porting?)
Update: Solved second problem, was just a case of copying over the JavaScript implementation and making a few tweaks, so don't need a solution for that.
View 1 Replies
Similar Messages:
Apr 10, 2010
I have custom class level validation attribute, inheriting from ValidationAttribute, on my model.
How come it doesn't register a key in the ModelState when its IsValid is false? I can see the the error message in the ModelState.Values collection, but the ModelState.Keys collection only shows an empty string "". Can I provide a key for it - presumably this is because its not assigned to a property?
I wanna be able to use ModelState.Remove in my controller to remove this error upon a certain condition, but I have no Key!
View 1 Replies
Nov 30, 2010
I am a MVC newbie & am lost in various ways validation can be implemented in my application.
I created a custom model-level data annotation validator attribute, but am unable to display its error message in the view. Basically, I have let's say 5 properties in the Entity class Job (model-level custom attribute called UniqueKeywords defined on it):
1) LoginID: value comes in the URL
2) Title: Required property level attribute defined on it
3) CatID1, CatID2, CatID3 - 3 categoryIDs - these are dropdowns in the view with same list of keywords in all 3.
I want to mandate that the values picked by the user in all 3 category dropdowns should be different.
With reference to the code pasted below, here is the explanation of what happens:
When I submit the form without specifying a title or picking anything from any of the 3 category dropdowns, the validation occurs for the property level Required attribute as well as model level uniquekeywords attribute, but the error is displayed only next to the required field "Title". I can confirm that the custom validation also works by filling in some text in the Title field & then re-posting the form...this re-displays the view, but the error message "Category cannot be duplicated" is not displayed.
Only relevant code sections are pasted below:
My Entity class code:
[Code]....
View 10 Replies
Jan 15, 2010
I'm attempting to create a custom control that extends the Table class. Inside of the table will be rendered a number of different controls based on a specified identifying property. On some of these controls, however, I need to specify validation for data types and requirement. To me, the most logical way of doing so is to add validators to the table and set their appropriate properties to specify which controls to validate. In doing so, however, I've discovered that none of the validators added will even render on the page in which the control is added. So is this a valid construct?
Here's an example of what I mean:
[Code]....
End result? No validation. So what's the move?
View 4 Replies
Apr 21, 2010
I am using two custom validator to validate EMAIL (should not be reused) & a captca image (text).Everything is working fine except that the displayed are not dynamic even though I set the displaystatus as DYNAMIC.
Test:
1. Enter email already registered
2. Enter invalid captcha text
both displays error. fine for now. but again.
1. Enter email NOT registered
2. Enter invalid captcha text
the error message at the email is still displayed as 'the email is arlready registered'. How can I remove the message for the email?
View 10 Replies
Mar 3, 2010
All ASP.Net client validation messages can be shown as an alert by setting the ShowMessageBox="True" property on the ValidationSummary control. This works fine for anything that happens on the client.
For the custom validators that validate server-side I had assumed that what would happen is that when the page is returned to the browser, ASP.Net would inject some javascript to show the alert box. However this isnt the case.
If you had relied on the message box to show detail and just have a * next to the erroneous field (as per my clients req's) then it wont work as intended. Does anyone have a solution for doing this? What I want is a way to possibly override the ValidationSummary control to inject javascript onto the page or something like this.
View 1 Replies
Jun 17, 2010
I would like to find a way of running custom validation on a checkbox list. The reason why is because they were a radiobutton list. Then our client decided they wanted to be able to uncheck them (without a clear button) so in the end I had to change them to checkbox lists and make them mutually exclusive. On some of them, one must be selected and I downloaded this: [URL] to set them as required - worked nicely. Perhaps there's a way of building on this further to create some sort of custom checkbox validation. why I need this custom validation is because when the built form checkbox list = flat or maisonette then floor level is then required.
View 3 Replies
Mar 24, 2011
I'm working on a page that has a significant number of textboxes/dropdowns/etc to fill out. The majority of these are going to be performing some sort of custom validation. I should note that it's nothing of substantial size - all just string or integer values.
I always hear (and have typically always agreed) that as much validation should be performed on the client rather than on the server, but in this case I am unsure. The difference here is that this project will be passed on to an IT guy who knows about computers but is still new to programming - he will be the one in charge of making the minor updates and changes to the way these custom validations work in the future.
My idea shifted from being as efficient as possible to being a bit less efficient but much more readable. I created a new class specifically for all of my validations which will be used throughout the website. By forcing all of my custom validation code in this class, though, I eliminate any client-side validations I might be able to perform. I should also note that each page that requires a custom validation will generally need to perform at least one server-side validation, so I will never be able to use client-side 100%
Considering the relatively low level of activity on the website (currently and in the future), would you consider this as an acceptable solution? Or would you ALWAYS prefer to have as much validation on the client as possible in order to increase the responsiveness, even if it makes things a bit more messy for whoever may be working on it in the future?
View 2 Replies
Jan 14, 2010
I'm attempting to create a custom control that extends the Table class. Inside of the table will be rendered a number of different controls based on a specified identifying property. On some of these controls, however, I need to specify validation for data types and requirement.To me, the most logical way of doing so is to add validators to the table and set their appropriate properties to specify which controls to validate. In doing so, however, I've discovered that none of the validators added will even render on the page in which the control is added. So is this a valid construct?Here's an example of what I mean:
[Code]....
View 1 Replies
Feb 1, 2011
I've just installed MVC 3 and have the following problem. Even if I try to run the sample project, that is included in MVC 3 installation, when I go to the Register form, only the Required attribute causes validation. The Email Format attribute doesn't work,which means I can enter non-email string into the email field and it submits the form without any error messages.
View 6 Replies
Jun 23, 2010
i have a field username which i want to have as a label in the edit.aspx and as a typical textbox in create.aspx . i have applied datannotation class . how would i do that. in the edit mode it is always going model.isvalid ==false . so what i did had a textbox there with the label and hid it . it is working fine now . but is there any clean way this is done in dataannotation
View 5 Replies
May 14, 2010
Technically I have the Data Annoations working with Linq to SQL classes - the problem is when validation
passes. When UpdateModel() tries to do its thing i can an error:The model of type 'MyProject.Models.Employee' could not be updated.What i did was i created a partial class for Employee (that is generated by linq to sql), then stuck a Meta Data class on top of it for the validation
[Code]....
And in my master page i include
<script type="text/javascript" src="/Scripts/jquery.validate.min.js"></script>
View 9 Replies
Jul 21, 2010
I have a page where I am using 2 update panels. The first update panel contains a form that has some validation tied to it. The second on has a simple form, but no validation. When I go to use the form in the second panel, the postback is halted by the validators in the first panel. Everything works as it should when I remove the validators.
View 2 Replies
Mar 20, 2010
I am using a model but as I want to have clean views I use the viewmodel approach which is like a downsized model which I map in my controller actions before sending to the view or getting it back in a HttpPost attributed action.
My question is: where to put the data annotation attributes. On the viewmodel classes or on the model? If I get it clearly the viewmodel annotations are used for the client side generation of validation right?
Do does that mean I have to put data annotations everywhere on both model and viewmodel?
View 11 Replies
Mar 31, 2011
I have a validation attribute that inherits from ValidationAttribute. However, the particular usage of this attribute applies to lists only (IEnumerable really). How can I specify the usage of this property to only be used with items that inherit from IEnumerabe?
View 1 Replies
Jun 6, 2010
Something is wrong in ASP.NET MVC 2 on client side validation. If I have form for create records in database and all fields are required, validation is triggered only then when I write something in field and delete it. If I go to field, stay this field empty and press Tab key validation isn't triggered.
Here somebody else write about the same problem: [URL]
View 1 Replies
Oct 7, 2010
I have found hints that MVC 2 recognises the 'buddy class' type of property metadata, where data annotation attributes are applied to a 'buddy' metadata class, and the MetadataType on the actual entity class points to that buddy class, as below. However, as below, it seems the only attribute that makes any difference to the rendered UI is DisplayName. Why are the other attributes like DataType, Required, and ReadOnly not working? I.e. why can I enter text in a read only field? Why do I not get an error when a required field is empty? Why does the DataType attribute have no apparent effect? Why does EditorForModel not include validation messages?
[MetadataType(typeof(CustomerMetadata))]
public partial class Customer
{
public class CustomerMetadata
{
[ScaffoldColumn(false)]
public object CustomerId { get; set; }
[DisplayName("CustomerNo.")]
[ReadOnly(true)]
[Required(AllowEmptyStrings = false, ErrorMessage = "Customer No. is required.")]
public object CustomerNo { get; set; }
}
}
I find behaviour the same whether I use an explicit LabelFor and TextBoxFor for each model property, or a single EditorForModel for the whole model.
View 2 Replies
Feb 3, 2010
So I've eagerly added the System.ComponentModel.DataAnnotations namespace to my model.
I've added things such as:
[Required] [DisplayName("First Name")]
public string first_name {get;set;}
I really like these attributes because they save me from having to write custom T4 and/or modify views heavily. This way, I can regenerate a view confident that it will add the display names I want, etc.
The problem comes in when I started building a DataGrid helper inspired by the one in ASP.NET MVC2 unleashed. In this helper, Stephen uses reflection to get at the column headings.
var value=typeOf(T).GetProperty(columnName).GetValue(item,null) ?? String.Empty;
Well, the trouble is I don't want to retrieve the property name. I want to retrieve the value for the DisplayName attribute.
My first attempt at this was to look inside the Attributes property of the PropertyInfo class. Unfortunately, none of the data annotations show up as an attribute.
Is there a way to retrieve the data annotations using reflection?
View 2 Replies
Apr 29, 2010
I have generated entity framework designer classes . After Generating the designer what is the most nicest and cleanest way to apply data annotation to the properties there . I have 3 classes there
View 2 Replies
Mar 7, 2010
Here is the code I have so far:
[code]....
When I click submit, It does the validation on the server side, I kinda like it to validate on the Client instead of taking a trip to the server right away.
View 2 Replies
Oct 22, 2010
I want to create a custom control where I define several specifically named DIV sections. The code-behind logic of the custom control will perform operations on these named DIV sections. The page where the custom control is hosted needs to be able to add named controls to the DIV sections and perform operations on these named controls added to the DIV sections.
Let me explain a little further. In the custom control, I want to have code behind logic that fires the following Page Event and uses a condition to make one or another specifically named DIV section visible or not:
< _
ToolboxData("<{0}:BaseDetails runat=""server""></{0}:BaseDetails>") _
> _
Public Class BaseDetails
[code]...
how can I create a custom control which is able to generate the named DIV sections "DetailsNameDiv1" and "DetailsNameDiv2" where my custom control can check a condition and make one or the other visible. Also, I need to be able to add controls to these named DIV sections when I host the custom control and the control that I add to the named DIV section needs to let me set values of these controls from the code behind logic of the page (or usercontrol) where the custom control is being hosted (in my example, I am adding TextBox controls that I want to set the Text property from a SQL Data Reader).
View 3 Replies
Feb 24, 2011
I have currently on multiple pages a modal popup that displays the information below, we are getting to the point where we need to call this popup from multiple locations, currently i have duplicate setups on each page that i want to use it on, but its becoming a mess to manage when a change is needed.. so im looking to see if what i have within the modal popup can be turned into a control that i can call anywhere thru out the site and have just 1 setup to maintain going forward..If its possible to create a control that can then be placed within the modal popup and server the same purpose that would be great any links here is what i have within the modal popup that i have on atleast 3 pages currently..
[Code]....
View 2 Replies
Dec 19, 2010
I want to create a custom web part in SharePoint 2007 that allows me to take items from an existing custom list (i.e. Title, Hyperlink, Description and photo) and then render it in a format of my choice. How can I do this using C# asp.net and a web part?
View 1 Replies
May 15, 2010
I know that how to create custom control and add custom property.
I want to create property like DataSource to my custom control.
View 1 Replies
Oct 26, 2010
I want to create a custom Toolbox in asp.net which will contain all custom control that i have made. Now the user will drag these controls from custom toolbox at run time and create form. I tried but did not succeeded.
View 1 Replies