MVC :: Model Validation Happens Automatically With LinqToSql DateTime Fields, But Not Other NOT NULL Fie...
Mar 15, 2010
I'm using MVC 2 with some Models from a LinqToSql project that I built. I see that when I post back to a Controller Action after editing a form that has a DateTime field from the Model, the MVC Html.ValidationMessageFor() helper will nicely display an error beside the Date text box. This seems to happen automatically when the you test ModelState.IsValid() in the Controller Action, as if the MVC model binding automatically knows that the DateTime field cannot be empty.
My question is... I have some other string fields in these LinqToSql generated classes that are Not-Nullable (marked as Not Nullable in Sql Server which passes thourgh to the LinqToSql generated classes), so why doesn't Mr. MVC pick up on those as well and display a "Required" message in the ValidationMessageFor() placeholders I have added for those fields?
Sure, I have successfully added the MetadataType(typeof<t>) buddy classes to cover these Non-nullable string fields, but it sure does seem redundant to add all this metadata in buddy classes when the LinqToSql generated classes already contain enough info that MVC could sniff out. It MVC validation works with DateTime automatically, why not these Not-nullable fields too?
View 4 Replies
Similar Messages:
Apr 1, 2011
I have a problem:
I've created usual Controller and View(Edit view) for editing my Entity (EntityFramework)
Here is view example:
<div class="editor-field">
@Html.EditorFor(model => model.BirthDate)
@Html.ValidationMessageFor(model => model.BirthDate)
</div>
BirthDate is Nullable<DateTime>
but during loading my View I get this exception
The model item passed into the dictionary is null, but this dictionary requires a non-null model item of type 'System.DateTime'.
That's because of BirthDate is null in database but it is nullable and I expect that it just leaves the filed empty.
And I have Shared EditorTemplate:
@model System.Nullable<System.DateTime>
@if (Model.HasValue)
View 2 Replies
Aug 17, 2010
I have a linq to sql entity class in which I declared some DateTime fileds like this:
[Code]....
And this is how I fetch data form repository:
[Code]....
All non DateTime fields are filled properly but all datetimes are null.[Column(DbType = "smalldatetime")]
View 8 Replies
Jul 19, 2010
So i'm working on the form that i started MVC with - the problem is that i'm NOT using a ViewModel for the view, its an actual Linq to SQL object. And so far it works fine. This form is a beast and id rather not refactor it to use viewmodels....
My big problem now is that depending some condition, i pretty much set almost everything to disabled when a particular dropdown is selcted (to mimic a deactivated state) - when the user hits submit, the model fields are now null, even tho you can see them filled in (just greyed out and unselectable) and validation refuses them.
Is there anyway around this other than to refactor the Views to use ViewModels (and set different validation rules so submit works)?
View 4 Replies
Oct 5, 2010
This is my first attempt at updating a database using LINQtoSQL. At least, it's my first if you don't count the tutorials I've followed. Unfortunately, The tutorials that I have found don't offer much more than updating a single table. I'm attempting to update a DB Model that's a bit more complex.
I have a Stream table:
[Code]....
View 1 Replies
May 14, 2010
Dim newMem As New Subscription With { _
.First = txtName.Text, _
.Email = txtEmail.Text, _
.dateLastEmail = "1/1/1980", _
.subDate = Now}
dbp.Subscriptions.InsertOnSubmit(newMem)
dbp.SubmitChanges()
The table contains a field called conDate that is nullable, and in this case I want it to remain null. It will get a date value later, when a confirmation is received. If I add .conDate = "1/1/1980", _ I can successfully add the record, but without that line I get System.InvalidOperationException: Nullable object must have a value. I tried this:
Dim DateConfirm As System.Nullable(Of DateTime) = Nothing and adding
.conDate = DateConfirm, _ but that didn't help either. How can I add a record without giving a date to a field I want to remain null?
View 7 Replies
Dec 6, 2010
I have setup my business object to have a create_date and edit_date members both datetime datatypes. My company want to display the create_date and edit_date fields in a gridview for each transaction. The problem i have is that after insterting a record it will have a valid create_date but no edit_date and when displayed in the gridview it defaults to datetime.minvalue (My default). How on earth do i show an empty field in my gridview for a null datetime field in the database?
I am using similar architecture to the Imar Spaanjaars example of a tiered solution. With a few small tweeks it has worked well for me for ages. I am passing a List<Database> to my object datasource which connects to my gridview.
View 3 Replies
Sep 1, 2010
Is it possible, inside a Custom Model Binder, to fire "something" that "says" the value is invalid so it gets handled by validation part?
Basically, I am getting an exception when the value for the property is invalid.
View 1 Replies
Mar 2, 2011
I write a class inherited from ValidationAttribute such as
[//...]
public class MyValidation:ValidationAttribute
{
//...
}
but when I use MyValidation,and EnableClientValidation,I found that it would not create client script automatically .
View 5 Replies
Oct 12, 2010
I have recently started working on ASP.NET with MVC 2 framework, and I am facing following difficulty in validating my data,
Scenario:
In my application the view (ASPX) is divided into tabs (jQuery) and each tab's content is ViewUserControl (ASCX). The main model for the view has collection of sub models for individual tabs. I use RenderPartial method to render view user control.
[Code]....
And the user control (Tab1.ascx) refers the specific model for it,
[Code]....
Now if in my Tab1Model if I put following validation
[Code]....
In the controller ModelState.IsValid is always indicates TRUE. How do I override the validation behavior such that it as well looks the items in the collection member (which holds sub models) as well.
<%= Html.ValidationMessage("FirstName") %>
View 1 Replies
Jan 14, 2011
I have a site that uses a jquery calendar to display events. I have noticed than when using the system from within IE (all versions) ASP.NET MVC will fail to bind the datetime to the action that send back the correct events. The sequence of events goes as follows. Calendar posts to server to get events Server ActionMethod accepts start and end date, automatically bound to datetime objects
In every browser other than IE the start and end date come through as:
Mon, 10 Jan 2011 00:00:00 GMT
When IE posts the date, it comes through as
Mon, 10 Jan 2011 00:00:00 UTC
ASP.NET MVC 2 will then fail to automatically bind this to the action method parameter. Is there a reason why this is happening?
The code that posts to the server is as follows:
data: function (start, end, callback) {
$.post('/tracker/GetTrackerEvents', { start: start.toUTCString(), end: end.toUTCString() }, function (result) { callback(result); });
},
View 1 Replies
Oct 27, 2010
I have a problem with passing a model to a controllerIn my controller I have a HttpPost function that gets a EF model.The problem is that the form does not contains all properties of the EF model.When the function is called that gets this EF model, I get error messge of fields that are not nullable in the EF model.That's because the fields are not in the form, so the not nullable properties gets no value.
View 5 Replies
Jan 25, 2011
I'm passing a model to a view, and the model contains this attribute:
[Required(ErrorMessage = "Please enter a start date")]
[DataType(DataType.DateTime)]
[DisplayName("Start Date")]
public DateTime StartDate { get; set; }
And I have this in my view:
<%: Html.TextBoxFor(m => m.StartDate) %>
When I load the page, the textbox is populated with a date: 1/1/0001 12:00:00 AM
Is there a way to not have this happen, maybe by using metadata?
View 2 Replies
Mar 16, 2011
I am trying the following code:
[Code]....
And I also tried with a normal DateTime instead of a nullable one. If I put in a date which is not possible then it still shows as valid. How can I achieve validation, both server side as with unobtrusive client validation?
View 4 Replies
Apr 15, 2010
I have an ASP.NET project which has already some custom fields in it's web.config file. I've added in it three more fields and used them in my changes, and it's working great.
But where it needs to be used, there aren't these thre fields in the web.config (this was expected, I've just added by hand for tests and developing).
How do I check the existance of fields in web.config, and in case of not finding it, how do I add it permanently to the web.config ?
View 2 Replies
Apr 28, 2010
I use Linq to Sql (although this is equally applicable in Entity Framework) for my models, and I'm finding myself creating buddy classes for my models all the time. I find this time consuming and repetitive. Is there an easy way to automatically generate these buddy classes based on the models? Perhaps a visual studio macro?
[MetadataType(typeof(PersonMetadata))]
public partial class Person
{
}
public class PersonMetadata
{
public object Id { get; set; }
View 4 Replies
Nov 4, 2010
If I make a change to my database (let's say I add a column to a table), is there any magical buttons that I can click to have my Linq to SQL model update to reflect the changes to my table? I had to create two additional columns yesterday, and both times I found myself destroying and then recreating the Linq model.
View 2 Replies
Aug 29, 2010
I'm currently developing a software application for my client. Part of the project is to keep track of his stock's shipping status. The client must insert the stock's pick-up date, expected time of departure (ETD) and expected time of arrival (ETA). The stocks will be called out using Grid View and the status, being one of the keys of the database, will be shown. Before the current date reaches pick-up date, the status must show "in warehouse", and after the current date reaches pick-up date and is before ETD, status must show that its "on the way to the port", and after ETD and before ETA, "in freight", and finally after ETA, "arrived". What datatype should I use for the database and where should I program it so that it changes automatically accordingly ?
View 5 Replies
Jul 6, 2011
I want to retrieve a record which stored in a SQL table as datetime type. How to detect it to see if it is not null value before assign it to a text box? Because in SQL, it displays as '1900-01-01 00:00:00.000'
For example, I want to code something like below:
dim dst as new dataset
if dst.tables(0).rows(0)("OrderDate") is not null then
txtOrderDate.text=dst.tables(0).rows(0)("OrderDate")
End if
View 2 Replies
Dec 26, 2010
One of the fields on the view does not have a label when i ran the project, although the other fields got labels and the following HTML code to generate the label already exists:-
<%: Html.LabelFor(model => model.Article_Type_ID) %>
View 2 Replies
Mar 8, 2011
I have been facing a problam with replace null datetime Field with String.
Like
My DB filed entrydate not mendetory DateTime is dataType.
Its return Entry date or Null.
When designing Crystal report Enrry date display but when it return null its simply display blankspace.
I want like
Enrry date
-----------
07-03-2011
Unavl
12-03-2011
13-03-2011
View 2 Replies
Nov 4, 2010
I have 2 textboxes for BEGINNING DATE and END DATE. First I compare the dates so that the END DATE is bigger than the BEGINNING DATE. This is OK with the validators.
MY PROBLEM IS: If the END DATE´S TEXTBOX is empty, then it should insert into the SQL DB, a null value. The field has a DATETIME type.
Since my INSERT Query requires a parameter when i call the ADD METHOD, it returns that the END DATE parameter is required.
View 8 Replies
Jan 17, 2010
By picking MVC for developing our new site, I find myself in the midst of "best practices" being developed around me in apparent real time. Two weeks ago, NerdDinner was my guide but with the development of MVC 2, even it seems outdated. It's an thrilling experience and I feel privileged to be in close contact with intelligent programmers daily. Right now I've stumbled upon an issue I can't seem to get a straight answer on - from all the blogs anyway - and I'd like to get some insight from the community. It's about Editing (read: Edit action). The bulk of material out there, tutorials and blogs, deal with creating and view the model.
So while this question may not spell out a question, I hope to get some discussion going, contributing to my decision about the path of development I'm to take. My model represents a user with several fields like name, address and email. All the names, in fact, on field each for first name, last name and middle name. The Details view displays all these fields but you can change only one set of fields at a time, for instance, your names. The user expands a form while the other fields are still visible above and below. So the form that is posted back contains a subset of the fields representing the model. While this is appealing to us and our layout concerns, for various reasons, it is to be shunned by serious MVC-developers.
I've been reading about some patterns and best practices and it seems that this is not in key with the paradigm of viewmodel == view. Or have I got it wrong? Anyway, NerdDinner dictates using FormCollection och UpdateModel. All the null fields are happily ignored. Since then, the MVC-community has abandoned this approach to such a degree that a bug in MVC 2 was not discovered. UpdateModel does not work without a complete model in your formcollection. The view model pattern receiving most praise seems to be Dedicated view model that contains a custom view model entity and is the only one that my design issue could be made compatible with.
It entails a tedious amount of mapping, albeit lightened by the use of AutoMapper and the ideas of Jimmy Bogard, that may or may not be worthwhile. He also proposes a 1:1 relationship between view and view model. In keeping with these design paradigms, I am to create a view and associated view for each of my expanding sets of fields. The view models would each be nearly identical, differing only in the fields which are read-only, the views also containing much repeated markup. This seems absurd to me. In future I may want to be able to display two, more or all sets of fields open simultaneously.
View 5 Replies
Mar 20, 2011
How can i make this work like i have 5 fields in my database table . 2) i created a model for validation with datannotation and created the compare password field as well with comparepassword attribute. (now my model has 6 fields including one external field compare password and 5 database fields)3) i created a view with that model.(User)4) now i created a controller as well but the problem arise here that when calling that actionmethod the compiler complains about the external field and tells it cannot find any extension method . how can i create the extension method or solve this error?
[Code]....
View 5 Replies
Dec 9, 2010
I am beginner to MVC. I have created a View with dropdownlist, text box and text area. I didn't create a strongly typed view because these fields are not generating from the database. Is this right way of doing it? Do I have to create a 'Model' class and generate a strongly typed view? I am trying to validate(client and server side) these fieds before saving into the database. How to create a Model class for these fields?
Here is my view looks like.
[code]....
View 1 Replies