Storing SelectList ID Using MVC EditFor Templates & Annotations (.net 4, Mvc3)
Mar 23, 2011
I can currently populate and display a Drop Down using the following model annotations, viewmodel, and custom Editor template - but am having problems persisting the submission (more on that below):
//Domain
Public class Person
{
public string FirstName {get;set;}
public string LastName {get;set;}
public string ClassName {get;set;}
public int ClassId {get;set;}
...
}
//ViewModel
Public class PersonViewModel
{
public Person Person {get;set;}
Like I mentioned, the above works fine - as in the drop down is displayed properly, but obviously in its current state it's not saving the classID (or name) to the Person entity, I understand the problem but not sure how to fix it.
My questions:
How can I save the selected value from the drop down to the Person entity
How can I save both the ID and the Name into the Person entity - I'm guessing only way is a hidden field that gets populated with an onchange event (this sounds weird, I'm sure, but it's being stored in a document DB, so it's not normalized - I may just store Name in the end)
i am using two tables for salary components like bonus,hra,ta,da.one is salary lookup table for viewing which components are chosen and according to this salary table is created dynamically.i want to view data fields of salary table in gridview and update thier value.
now problem is that how to create template field and edit template field for updating fields of salary table because field of the salary table changing every time as it is creating dynamically.
I have recently found this snippet of code but I am unable to get it to work. Does anybody know if the $index syntax has changed in the latest version of the client templates?
I have a File Uploader in my ASP.NET application Using C#, we can upload any type like images, documents, pdf etc.
I m storing it in the Filesystem and having only the Name of the File in DB.My doubt is can we store the entire file, images in DB. State me Which is good practice and why we need to use it.
I'm working on a MVC3 web application. I want a list of categories shown when editing a blo from whe applications managements system. In my viewmodel i've got the following property defined for a list of selectlistitems for categories.
/// <summary> /// The List of categories /// </summary> [Display(Name = "Categorie")] public IEnumerable<SelectListItem> Categories { get; set; }
The next step, my controller contains the following edit action where the list of selectlistitems is filled from the database.
public ActionResult Edit(Guid id) { var blogToEdit = _blogService.First(x => x.Id.Equals(id)); var listOfCategories = _categorieService.GetAll(); var selectList = listOfCategories.Select(x =>new SelectListItem{Text = x.Name, Value = x.Id.ToString(), Selected = x.Id.Equals(blogToEdit.Category.Id)}).ToList(); selectList.Insert(0, new SelectListItem{Text = Messages.SelectAnItem, Value = Messages.SelectAnItem}); var viewModel = new BlogModel { BlogId = blogToEdit.Id, Active = blogToEdit.Actief, Content = blogToEdit.Text, Title = blogToEdit.Titel, Categories = selectList //at this point i see the expected item being selected //Categories = new IEnumerable<SelectListItem>(listOfCategories, "Id", "Naam", blogToEdit.CategorieId) }; return View(viewModel); }
When i set a breakpoint just before the view is being returned, i see that the selectlist is filled as i expected. So at this point everything seems to be okay. The viewmodel is filled entirely correct. Then in my view (i'm using Razor) i've got the following two rules which are supposed to render the selectlist for me.
When I run the code and open the view to edit my blog, I can see all the correct data. Also the selectlist is rendered correctly, but the item i want to be selected lost it's selection. How can this be? Until the point the viewmodel is being returned with the view everything is okay. But when i view the webpage in the browser, the selectlist is there only with out the correct selection. What am I missing here? Or doing wrong?
I cannot get my code to work with the usual workarounds. I have a model which exposes a SelectList and a value for the selected item in it. The list is built like: new SelectList(persons, "Id", "Name");
where persons is an array of type Person with a *string* property named Id and a string property named Name. My model has a SelectList property returning a list built as shown, and a SelectedPersonId *string* property which should be updated by the dropdown. Here's my view code:
I can see the persons in the dropdown and select one item, but the model's SelectedPersonId property never gets updated (I get a null). Of the two workarounds I found googling around, one stated to build the SelectList in the model, using the constructor shown above; another recommended to ensure that the selected value is a string. I did both, but still it does not work.
I had been building my SelectLists in the View, but I found examples doing it in code that I liked better. Now I'm creating one of my SelectLists like this:
[Code]....
And all is good, but I'm not sure how to do two things. First, I'd like to add an initial SelectListItem that prompts the user to select a value. When instantiating the SelectList in a loop this is easy, but I was hoping to keep this approach. The second problem is setting the default selected item. In the constructor it shows the 4th parameter to be used for this purpose, but I'm not certain how to do it. There's a property of this object named "DefaultView". It's a boolean, and I'd like that to determine the selected state. Is this possible?
I have written an Enum extension method that allows me to create a view model and allows me to easily bind a generic Enum to a SelctList like:this.ProductStatusList = new ProductStatusTypes().BindToSelectList<ProductStatusTypes> (product.Status.ToString());
In my View I can then have:
<% using (Html.BeginForm()) {%> <fieldset> [code]...
Notice I am using EditorForModel and then a seperate DropDownList. My question is: Is there a way to get the EditorForModel to be clever enough to pick up that I want to use a SelectList instead of a TextBox for status?
I'm having problems retrieving the values of a selectlist in my form collection. I've tried making a viewmodel with an attribute with the same name as the select list.
I'm honestly just realizing I REALLY don't understand how model binding works with selectlists. I've just been assuming that the following conventions apply:
Name the select list the same thing as the attribute on the model you want it to bind to. Apart from that, I really don't get it. I've looked at several books on it and they're useless frankly. How does a select list work with a) form collection and b) a particular model?
What do I use to set the dataValueField of the Select List when I'm using a list of strings. I want to be able to set the value of the option in the select. If i have:
List<string> list = new List<string>(); list.Add("apple"); list.Add("orange");
I am using VS2010 RC and i created a buddy class. My problem is that i cant seem to see the option to change the Display name of a column.i only see "displaycolumn" and "displayformat".
I been working in a web applciation and want to annotate the image downloaded from the server at client side and once the user have added some text into the image that specified images must be saved on the server so that while rereving those images user should be able to view the annotated imags.How to achieve the above target.?I have tried following link which is in Jquery and add the annotations in the images...but it last until user close the browser.
http://code.google.com/p/jquery-image-annotate/
Besides this,they also given a solution to implement it the server side in the below link;
But, the code written is using c# in MONORAIL..infact i could not understand the save,delete operations of the annotations. i been searching for the solution for more than a weak but could nt get it yet.. it using silverlight but as I am quite new to silverlight so send me some useful links for the same.
I would like to know if it's possible to bypass the validation of one property which is using Data Annotations. Since I use the model across multiple pages, there's a check I need in some, but not in others, so I would like it to be ignored.
I have various questions about validation using data annotations. I am using the following setup
asp.net mvc 2 entity framework 4 data annotations
Basically, I'm trying to get unique validation working and i'm a little confused. My models are as follows:
public class Buyer { public int Id { get; set; } [Required(ErrorMessage = "The email is required")] public string Email { get; set; } [Required(ErrorMessage= "The name is required")] public string Name { get; set; } } public class Seller { public int Id { get; set; } [Required(ErrorMessage = "The email is required")] public string Email { get; set; } [Required(ErrorMessage= "The name is required")] public string Name { get; set; } }...............................................
I make use of validation with data annotations in my model classes. How do I make sure this annotations are not violated when I validate data in my business layer, before sending it to the DAL? I guess I don't want to define the validation rules in two places (model classes and in my BLL-classes)?
If I have a search object with a list of fields, can I, using the System.ComponentModel.DataAnnotations namespace, set it up to validate that at least one of the fields in the search is not null or empty? i.e All the fields are optional but at least one should always be entered.