MVC :: Why SelectList Don't Have A Default Constructor New SelectList
Aug 20, 2010why SelectList dont have a default constructor new SelectList()
View 1 Replieswhy SelectList dont have a default constructor new SelectList()
View 1 RepliesI'm failing at getting the selected item on a mvc dropdown list. I can't stand viewdata, and every example uses it. Here is my code,
//controller
public ActionResult Register(Models.Person APerson)
{
}
public class Person
{
public Person().............
I followed MVC 2 source to create a CheckBoxList helper.
I was able to identify the problem I am having but not able to solve it.
On my view I have the following:
[Code]....
The problem is in the bold part ...
The newSelectList is equal to selectList but all items were deselected.
What am I missing?
how can i disable first value in the select list when the checkbox is clicked
View 2 Repliesi have wrote the following code inside a model class, but there was an error that indicates that the select list could not be found:-
public SelectList Countries {
get;
private
set; }
so which "using system" i should add????
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.
@Html.LabelFor(m => m.Categories) @Html.DropDownListFor(model=>model.Categories, Model.Categories, Model.CategoryId)
@Html.ValidationMessageFor(m => m.Categories)
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?
Is there a way to remove items from a SelectList?
View 1 RepliesI 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:
Html.DropDownListFor(m => m.SelectedPersonId, Model.PersonList)
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 trying to display a dropdown on my view page that has a custom text value.
I'm trying to display a list a Contacts. A Contact contains a ContactID, FirstName, and LastName.
<%= Html.DropDownListFor(m => m.ContactId, new SelectList(Model.Contacts, "ContactID", "LastName"), "- Select a Contact -") %>
Right now I'm just displaying the last name, but I'd like to display the first name and last name in the dropdown.
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");
and I want my html to be:
<select>
<option value="apple">apple</option>
<option value="orange">orange</option>
</select>
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 have my class RoomType:
Int32 Id
String Name
String ColorCode
My viewmodel gets a List<Roomtype> RoomTypes which should be displayed in a dropdown.
Each dropdown option item should have: 1) as title the Name, 2) as value the Id, and 3) the style background-color #ColorCode.
My problems are how to convert this list correctly into a List<SelectListItem> as required by ASP.NET MVC's DropDownFor helper, and then to have the correct values inserted for each option.
I've tried to have a new readonly property in my viewmodel, which has a getter RoomtypeSelectList which returns new SelectList(RoomTypeList) but I can't get the correct properties to show (Name, Id, Background color).
I have a connection string defined in my web.config like:
<connectionStrings>
<add name="LibraryConnectionString" connectionString="Server=.SQLEXPRESS3;Database=Library;Integrated Security=true" />
Well...lI do not understand why when i drag-and-drop tables into a new DataClasses dbml it does not construct a default constructor specifying the connection string. I only have constructor with params like:
public DataClassesDataContext(string connection) :
base(connection, mappingSource)
{
OnCreated();
}
I do need a default constructor for LinqDataSource..
What is another name of Constructor?
View 3 RepliesI am confused about the constructor of ObjectContext
// Summary:
// Initializes a new instance of the System.Data.Objects.ObjectContext class
// with a given connection string and entity container name.
//
// Parameters:
// connectionString:
// The connection string, which also provides access to the metadata information.
//
// defaultContainerName:
// The name of the default entity container. When the defaultContainerName is
// set through this method, the property becomes read-only.
protected ObjectContext(string connectionString, string defaultContainerName);
I am not understanding the parameters clearly.
if a class has a private constructor then it cant be instantiated. so, if i dont want my class to be instantiated and still use it, then i can make it static. what is the use of a private constructor? Also its used in singleton class, except that, is there any othe use ? (Note : The reason i am excuding the singleton case above is because I dont understand why do we need a singleton at all ? when there is a static class availble.
View 8 RepliesI have the following constrcutors within a Model and I want to click the create button on a previous view and pass the projectID in and call the second Constructor so I have the projectID on this view. Do I need to change the routing in someway to call the constructor with the parameter? -
[Code]....
I'm using Microsoft Unity. I have an interface ICustomerService and its implementation CustomerService. I can register them for the Unity container using the following code:
container.RegisterType<ICustomerService, CustomerService>(new TransientLifetimeManager());
If CustomerService has a certain parameter in its constructor (e.g. ISomeService1), I use the following code (I need to specify SomeService1):
container.RegisterType<ICustomerService, CustomerService>(new TransientLifetimeManager(), new InjectionConstructor(new SomeService1()));
No problems here. The problem appears when CustomerService class has two parameters (not one param as in the previous example) in its constructor (e.g. ISomeService1 and ISomeService2). It works fine when I'm using the following code: container.RegisterType(new TransientLifetimeManager(), new InjectionConstructor(new SomeService1(), new SomeService2()));The problem is that I do not want specify SomeService2() for the second parameter. I want to specify only first parameter - SomeService1(). But I get the error that I need to specify none or both of parameters. How can I specify only first parameter of constructor?
I've created a web service , which can a method to set the user credential using Microsoft.Web.Services3.WebServicesClientProtocol. The sample code is :
<WebMethod()> _
Public Sub ClientCredential1(Of TSecurityToken As SecurityToken)_
(ByVal UserCred As Microsoft.Web.Services3.Security.Tokens.UsernameToken)
[code]....
When I run the web service it gives this error: "Microsoft.Web.Services3.Security.Tokens.UsernameToken cannot be serialized because it does not have a parameterless constructor."
I have a Class called Repository for accessing (Read/Write to and from) Database.The projects that require access to the database create an object of Repository and pass the connection string as a constructor parameter for the repository to work for that particular project.
I have few methods in the Repository that i want to be available only if certain connection strings are passed. I don't want them to be available if some different connection string is passed.Is there any way I can accomplish that?I have never used method header technique, if yes, how can i use it? if no, please let me know if there is any other way to achieve my goal.
I'm very new to Visual Studio and I am getting this error when trying to update an Oracle table from Gridview using a tableadapter datasource. I've followed the instructions in my text very closely but am at a loss as to why this error is occurring.
Details: System.MissingMethodException: No parameterless constructor defined for this object.
Source Error:
[Code]....
Stack Trace:
[Code]....
this is the stack trace error I am getting. At this point, I'm a little clueless how to resolve it.
I am doing Music Store sample application.Here my code.
StoreViewModel
[Code]....
StoreController
[Code]....
Create.aspx
[Code]....
But when i click Save it show Error
Server Error in '/' Application.
No parameterless constructor defined for this object.