MVC :: Pass Parameter From Controller To View And Back To Another Controller?
Aug 16, 2010
I have a simple model where a Person has Gifts. I have a view which is a list of Gifts belonging to one Person.
My problem is with the Create action for a new Gift. I want it to default to the PersonID that we are already viewing the list of Gifts for. I tried simply passing the last PersonID (they are all the same)
Html.ActionLink("Create New", "Create", new { id = Model.Last().PersonID }) which works fine if there is already at least one Gift for that person but if this is the first Gift I don't have a value.
My Gift List controller knows the PersonID I want to pass but the view doesn't.
How do I pass this PersonID from my Gift List controller to my Gift Create controller via the Gift List view? Or is there a better way to do this?
This may seem simple to a seasoned coder, but I'm all wet-eared and new to MVC, and trying to wrap my head around it is driving me nuts. I have completed the Nerd Dinner and MVC Music Store tutorials, and seem to be grasping the basics... Well, sort of... It just seems that every new idea I have requires hours of searching with Google.
As it stands at the moment, I have a static DateTime field that is populated by using DateTime.Now. What I need to implement is a master TextBox (JQueryUI DatePicker) at the top of the View that will enable the user to overwrite said DateTime.Now if required.
Here is a hypothetical situation:
Controller
[Code]....
Site.Master
[Code]....
View
[Code]....
I thought of using a variable to override the default date if the user selects a master date, but can't figure out how to implement it.
I can get it to work if I use a static string, like so:
[Code]....
Is there any way to pass the value of the master datepicker (txtDateTime) from the View back to the Controller? I've heard mention of TempData, but can't seem to find a similar scenario.
I'm sure I'm just missing something really obvious, so if anyone could explain it to me really s-l-o-w-l-y, that would be cool.
I'm praying that this isn't another of those situations where "MVC doesn't work that way" or "It needs more cowbell", 'cause then I'll pack it all in and go play WoW D:
I have following situation - I am pasing user info object from Controller to View. It contains GUID UserID, which i dont want to be seen on page. So I removed every Html.LabelFor(model => model.UserID), Html.TextBoxFor(model => model.UserID) etc... from generated View source. And because of this when Html.BeginForm() returns that object back to Controller all values is there but UserID is lost??
If I leave Html.LabelFor(model => model.UserID), Html.TextBoxFor(model => model.UserID) etc.. in View everything is fine. But I dont want to show UserID? Where is the problem here?
Each row has a drop down, a text box and an "add" link. I'd like for someone to select something in the drop down, edit something in the text box and pass that information to an Action in the Controller.
I know i can do something like this:
[Code]....
[Code]....
Which is kind of gross - id like to do just call one action, that passes the selected drop down value, the textbox value and call just the one action, is it possible to do something like this:
[Code]....
Where i pass the Dropdownlist selection and the textbox value to my controller specifically
In asp.net mvc3, I've got a few local variables in one of the controller, is there any neat way to pass all these variables to view? Something like "locals()" in python?
now, what i want to do is to place few textboxes on a view that allow users to input the Answer Text. after click the submit button. i want List<AnswerInfo> which contains the Text information pass to the controller. can anyone tell me how to do it?
I am Francesco and I am newbie. I have a problem with ASP.NET MVC3 regarding the data posted between View and Controller. My goal is to use a form to edit a specific record from my database and then post it back to the controller, which is in charge of checking the record's fields and submit them into the database. The data are passed from the Controller to the View by using a ViewModel and therefore the DefaultDataBinding does not apply in this case. I tried many approaches, I monitored the communication with Fiddler but I couldn't solve my problem. The method described by Phil Haack does not work and neither does the FormCollection.
Here you have the code:
ViewModels: I pass it to the View to create a table. Name and the list of Item names (table columns headers) are just to be displayed. I want to have back the Id, the Month (they are passed correctly as parameters and represents table row headers) and most important the ActualValue of the Items and their Id (I have an association table in my database with Id, Itemid and Month as keys)
[Code]....
View: The View is strongly typed as ViewModels.EditViewModel and sends the fields through a submit button. I have to generate a table by using foreach loops, because I do not know how many items there are in advance
Controller: The controller has to update each kpi passed from the view related to a specific Id and Month.
[HttpPost] public ActionResult EditMonth(int Id, int Month, //FormCollection kpiValues)
My way to ASP.NET MVC was not across ASP.NET Web Forms, so it's hard for me to understand how better to pass value from ASP.NET MVC controller to ASP.NET webforms script which is inside MVC View.
For example, controller action:
[Code]....
How to assign a value of myvar from a controller action to par1 variable in the View instead "stubvalue"?
if I use a Html.Hidden field in my view, when the value click to submit the form I would like to pass this data to the controller. This variable would contain int as key and string as value,
Dictionary<int, string> interestTable = new Dictionary<int, string>();
How can I specify the htmlAttribute fo this variable in my Html.Hidden code?
UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, that follows the UP(Unified Process). It uses a Grasp Controller pattern to interact with domain classes by some methods like NewSale(), AddNewItemToSale() and CloseSale. In windows form, I can instantiate a object of this class in the UI and then use its methods to perform the actions. This works well in Client apps, but when I use asp.net mvc, I cannot find a way to instantiate an object (one for each user) that was always visible for a Controller (MVC). I cannot insert as an attribute inside Controller because it always create a new one.
my MVC2 delete and only my delete controller is refusing to return any class information. Its really similar to my edit function and the views are all auto-generated so I don't see the problem.
Function Delete(ByVal id As Integer) As ActionResult
I have the following scenario: my website displays articles (inputted by an admin. like a blog).So to view an article, the user is referred to Home/Articles/{article ID}.However, the user selects which article to view from within the Articles.aspx view itself, using a jsTree list.So I what I need to do is to be able to differentiate between two cases: the user is accessing a specific article, or he is simply trying to access the "main" articles page. I tried setting the "Articles" controller parameter as optional (int? id), but then I am having problems "using" the id value inside the controller.
I have a filter on my MVC web site. I display some records in a few different controller actions but when moving from one action to another I want to apply those filter values.
How can I persist values from controller to controller?
Should I use Session? TempData?
I am using Structure Map for IOC.
Maybe I could have a class that contains a Property for each Session Value that I use in my application and inject it on the controllers that need session?
I have been at this for hours and am pretty stuck. I am using MVC2 with VS2010 Beta 2.
Here is my javascript from the view:
[Code]....
Here is my controller code:
[Code]....
I can set a breakpoint in the GetMember method and it does receive the Member_ID parameter correctly. It also correctly returns a member object from my repository (dpR). The function in $.getJSON call that is supposed to receive this result does nothing however. There are no exceptions or javascript errors. It is just silently dying.
public ActionResult Details(int? aaaID, int? bbbID)
and I am trying to route the url http://..../controller/aaa/23432 to action Details.
routes.MapRoute( "controller", // Route name "controller/aaa/{id}", // URL with parameters new { controller = "controller", action = "Details", lblID = UrlParameter.Optional } // Parameter defaults);However, the aaaID of function Details also get a null value?
I've been going at this for several hours and I simply cannot find the solution.
I want to get some data from my user. So first, I use a controller to create a view which receives a Model:
[code]...
The rest of this controller does not matter since no matter what I do, the count attribute of Request.Files (or Request.Files.Keys) remains 0. I simply can't find a way to pass the files from the form (the Model passes just fine).
may I ask one seemingly simple question - I have a Javascript function that loops through my checkboxes(they're plain HTML checkboxes, not using the helper methods), and for every checked one it's adding its value to an array. So now, how do I get this array in my controller so that I can assign its values to the fields, i.e. object's properties?
This is my checkbox code:
[Code]....
and the script:
[Code]....
and here's the controller code:
[Code]....
Now, this langID should be assigned every checked checkbox's value, so I guess I'm missing a loop here too, it should go until some border that's gotten from the client script or something, but my bigger problem is how to retrieve the posted values from the javascript, something like PHP's POST["array"]...?
This Request.Form works fine when just one checkbox is checked, but now I need it to work with several checked..