.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
david stephan
Gaurav Pal
Post New Web Links

passing data from a DropDownListFor to Action method in MVC3 (Razor)

Posted By:      Posted Date: April 10, 2011    Points: 0   Category :ASP.Net

I have two questions regarding passing the selection of a dropdownlist to an action method in an MVC controller:


1. What are the options for actually passing the selection back to the action method as a parameter?  The only thing I've been able to get to work is to name the parameter and the select list the same.  For example, my action method looks like:

        public ActionResult Example(int? FeatureId)

// do something with FeatureId
            return View(someobject);

and the static HTML list looks like:


<select name="featureId1">

2.  How can I use an extension method to name the select list appropriately?  I've been trying to do it with the htmlAttributes method but I find that this only works on the id, not the name.  E.g.:



@Html.DropDownListFor(x => x.objects, new SelectList(Model.objects, "FeatureId", "FeatureName"), new { @id = "FeatureId", @name = "FeatureId" })







View Complete Post

More Related Resource Links

Passing data into a Sharepoint Designer Form Action workflow


I have a workflow that is triggered by a "Custom Action" on a "Form Action Button" that I added to a DataFormWebPart in SharePoint Designer. So the workflow isn't associated to any list or document library. What I need to do is pass some data to this workflow so that it can do some useful stuff.

I see from here that Natalya Voskresenskaya shows a method that allows you to pass a single list item value into a workflow variable but if you hack this into the aspx file as suggested, when ever you subsequently open design view and the workflow on the button again, all the hacks are removed by SPD.

I have tried this method and it seems to work for one variable, but I cant figure out how to pass more than one. Here is another post that is very similar but slightly different.

In this post Ibrahim said on April 1st 2008:

"I am having difficulty building a Javascript string for my particular requirement; SPD had already built a concat

passing values to object properties of action method parameter


I have an action method that accepts a single parm.

That parm is an object with multiple properties. MVC correctly maps values from the querystring
to properties in the parm object by matching property name to querystring value name. 
Problem is, properties in the action method parm object which are themselves objects with
properties, are not assigned their matching values from the querystring. The class object has a
constructor which accepts a single string parameter.

How do I assign to properties of an action method parameter which are themselves class objects?



                <%: Html.ActionLink("Edit", "ProductMasterEdit", 
                       new { ProdKey=item.ProductKey.Value, 
                       ProductKey = item.ProductKey.Value })%> 

    public ViewResult ProductMasterEdit(ProductMaster Item)

  public partial class ProductMaster

    public ProductKey ProductKey
      get { return new ProductKey(this.ProdKey); }
      set { this.ProdKey = value.Value; }


Passing Data to a Cell in Excel



I have a webpage that is created in Visual Studio 2008 and programmed in C#.

I have a web form that prompts the user to enter a value into a text box.  For now, I do not have any validation on that field (I will be adding that later).

I need to pass the value that the user has entered to cell C1 of the excel spreadsheet (user_info.xls).

I understand that using excel is not ideal, but unforutnately need to try to make this work with the excel spreadsheet.

I do not have any code for this yet, because I honestly do not know how to begin.

The action of poulating the excel spreadsheet will be intialized from the On Click event of a Submit button.

Any suggestions would be much appreciated.

Thank you in advance for your assistance,


Will MVC3 make possible to use IOC with Action Filters



Will MVC3 make possible to use IOC with Action Filters?

Is this on the roadmap?



MVC3: Define Dynamic ViewModel property inside Action Filter



How can I define a Dynamic ViewModel property in MVC 3 inside an action filter?

I am looking to have something like but inside the ActionFilter and not in the controller:

ViewModel.Title = "Home";

Thank You,


ASP.NET MVC3 Areas and Razor views produce errors?


The view at '~/Areas/SomeArea/Views/List/Index.cshtml' must derive from ViewPage, ViewPage, ViewUserControl, or ViewUserControl.

The project structure is pretty much default. There is one area called SomeArea. It has a single controller called List. It does nothing except:

public ActionResult Index()
    return View("~/Areas/SomeArea/Views/List/Index.cshtml");

The view looks like:

@inherits System.Web.Mvc.WebViewPage<dynamic>
    View.Title = "Index";
    LayoutPage = "~/Views/Shared/_Layout.cshtml";


I have tried emptying the entire file part by part and nothing seems to help. If I create a controller and view outside the area it works just fine. If I create an aspx view it works fine as well. Is it possible the default razor view engine doesn't support areas at this time?

The areas are registered too.

public static void RegisterRoutes(RouteCollection routes)
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters

Action method returning an ActionResult used in a Action method


Hell all,

I have the Index action method calling a method that itself is an action method.

Example :

public ActionResult Index()
   //do stuff
   ActionResult result = MethodB();
   // ?? what to return here ??

public ActionResult MethodB()
   //do stuff

  return View("Index);

What to do in this case ?

Sys.Data.DataContext.saveChanges method doesn't send update to server after DataServiceException ex

Hello,I have a page with a simple form that updates a single record in a table in my database.The database is accessed via WCF Data Services. To load and save data from/to the server, I usethe Sys.Data.DataContext object provided by the ASP.NET AJAX library. When the "save" button on theform is clicked, I use the saveChanges method of the Sys.Data.DataContext object to send all changes to the server.Also, at the server side, I use an interceptor that checks the "Price" fields of the record, and throws a DataServiceException exception when the contents of the field is a negative number.Both the JavaScript and the interceptor (in C#) are copied below.Here is the interesting thing:When I enter a negative price in the form, the interceptor throws the exception and my form shows an error message. Good.However, if I then make one of the other fields in the form a bit shorter (for example from "abcd" to "abc"),the saveChanges method doesn't send the data to the server. But it does call the success callback that I passed in to saveChanges, creating the impressionthat the data has been saved. This happens while the Price field is still negative. I used Fiddler to make sure thatno message is sent to the server. Also, the interceptor doesn't get executed.The weird thing is that if I make one of the fields a bit longer instead (for example &q

Different number of data in Report after using Render method.

Hello All, I have CRM4 report that i execute from outside the CRM system, using the ReportExecutionService2005.asmx web service, i get the report exported directly by calling the Render method of the webservice, but when i compare the data of the Report outside the CRM is less then the data in the report executed from within CRM system. I have tested the same report with same user in CRM and outside CRM but data is different. can someone guide me what is going wrong in the Render method.BharatKumar Bambhaniya Software Developer.

Passing data to the client and back - best way?

I'm ok (I think) with using a data bound Custom Control on the server to get hold of my data (it will be part of a larger dataset) and to ultimately pass updates to the database.  The bit I'm researching at the moment is passing that data to and from the client. One way to pass the data to the client is to use JSON within the Pageload event to construct a set of Javascript objects (one per row in the data).  Is that the best way, or am I missing something? Then, after the data has been manipulated on the client, I need to pass the rows back again so that the server side code can pick them up and process the updates.  I've seen a suggestion on here that a hidden text field is one way to do that.  Is it the best? Neither of my approaches seem to be at all elegant - and I suspect that I am missing something fundamental in ASP .NET AJAX! Thoughts welcome, Thanks, Nick

Passing data from a DetailsView to an Applet

I have a DetailsView that I am trying to use to pass results to an applet's parameter list but I can't figure it out. Example: <asp:DetailsView ID="..."....     <Fields>         <asp:boundfield Datafield="Name".../>         <asp:boundfield Datafield="Name2".../>          ...etc.   <applet codebase="http:/..." ...> param name="Name" value="value of Name from my DetailsView" /> param name="Name2" value="value of Name2 from my DetailsView" /> ...etc. I have been trying all sorts of things and viewing tutorials, etc, but I just don't seem to be able to figure this out.        

Data in a web method block

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]   public static string[] GetCompletionList(string prefixText, int count, string contextKey) {       // Create array of movies       string[] movies = {"Star Wars", "Star Trek", "Superman", "Memento", "Shrek", "Shrek II"};          // Return matching movies       return (from m in movies where m.StartsWith(prefixText,StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray();   }  Disclaimer: I'm totally new to all this.Problem: The above code works great for me in getting the Autocomplete AJAX control to work. However, what I need is to define the string[] variable outside of the above block. What I'm looking for is the way to define such a variable as a global, or whatever the technical term in asp.net is for a variable that is persistent and recognized wherever it is used in the code-behind.Is this possible, without massive amounts of technical wizardry?

Passing data from a nodeset to another webpart

Hello, I currently have a page with three webparts.  A form webpart, a dataview webpart, and a chart webpart (Dundas).  I have been able to successfully pass a selection from the form webpart to the dataview webpart.  My problem is arising when I try to get the filtered data from the dataview webpart into the chart webpart.  I cannot find a way to pass either the linked datasource with the filter criteria or the nodeset that is being used in the dataview.  Can someone please point me in the right direction of how to pass the xslt data from my dvwp to my chart webpart?   Thanks, Jon

Passing Parameters to Web Service Method using XML DataSource

I would like to know how to pass parameter values to a web service that I am using as a data source.  I am using the Data Source Type XML.  I have been able to retrieve data back from the web service method that does not require parameters.  But I need to be able to use a web service that requires parameter values.  How do you use the XML data source type with parameters?  I have use information from the article  http://www.codeproject.com/KB/reporting-services/SSRS2005XML.aspx. thanks, Lloyd

Calling a method with a class object as parameter data type.

   [WebMethod]    public string GetInfo(Customer inCust)    {        // Code in here    } I have a web service that resides on a remote server. I want to call a public method of theweb service named  "GetInfo". The method is shown above. The web service method expects a class object oftype "Customer". What I did to create a Customer object was to define in my asp.net project my own class named "Customer" which is exactlythe same as the class that belongs to the web service project on the remote server. I then created an instance of Customerand tried to call the web service passing in an object of type customer : my.Service ws = new my.Service(); // Get web service connectionCustomer aCustomer = new Customer();aCustomer.Initialize();ws.GetInfo(aCustomer) // call web service passing in a Customer object The problem is that the compiler gives me the following error: Value of type '_Default.Customer' cannot be converted to 'ws.Class1'. Here Default is refering to my Default.aspx.cs code. Why is this? Do I need to Cast my "aCustomer" class object to a type ofws.Customer ? How do I do that?

Passing an List to my Action

    public ActionResult RenderMyThing(IList<String> strings)     {         return View("RenderMyView");     }     Somebody will come to my page, RenderMyThing.aspx ... and I always want to pass a list of strings         routes.MapRoute("MyRoute", "RenderMyThing.aspx", new { controller = "My", action = "RenderMyThing", new List<String> { ... } });    Is this possible?
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend