MVC :: How To Pass Specific Information From View To Controller
May 25, 2010
My view has a number of rows.
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
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?
Curious what the best practice is for returning errors to a view from a controller where the error isn't really a validation error, but more like "user not found" or "service timeout" type of errors. (in ASP.NET MVC2 framework)
I've been adding them to the ModelState's model errors, but that doesn't seem appropriate. (although easy to implement and maintain)
Example - A user tries to log in, and their credentials do not match a known user.
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?
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 a Customer controller that deals with customer products, information and what not. Some products have specialisations that I want handle slightly differently so need a process of doing that. Currently I have hard coded in if statements to see if a customer has that product or not, and if it has, it'll add the extra navigation elements etc.
What I think might be a better way is to have a Controller that inherits off my customer controller but adds the extra functionality. It'd then be pretty nifty if I could, upon receiving the request, check which Customer derived controller has a function that matches the request i.e. ViewSpecialProduct and then invokes that as opposed to the vanilla customer controller.
Are there easier ways? If not how do I accomplish the above? I don't know enough about routes and the controller initialisation process yet.
I was under the impression that TempData was only persisted across one action but I am seem to be seeing the behaviour that it is persisted across one action only on the same controller.For example in a single controller if I do the following in my Event Controller,
TempData("test") = "Moo"
And then after displaying a view I then move to a new action (either by a GET or POST or redirect) I can read back the data,
TempData("test") = "Moo"
If I then move on to another action (either by a GET or POST or redirect) and check for TempData("test") I should get Nothing.However I have just tried this with two controllers and I get a very bizarre problem.For example on my first Controller, called Event Controller I set the TempData("test") = "Moo".I then move to an action on a second controller called Main Controller. I read back TempData("test") and find "Moo" as the result which is to be expected. I then perform some sort of task and a new GET, POST or Redirect request is made back to the Event Controller.
At this point I am expecting TempData("test") to be nothing, since I have already passed it to an action once already. However when I test this I am actually getting TempData("test") = "Moo" which I thought was not the expected behaviour, since in effect it would be like using Session("test) instead.
Can i create a partial view and a controller that will feed data to the view, and if i render that partial in a Master page, the Data will show on whatever URL i am?
Or is there another way of showing content from database on every page(view)?
Imports System.Net Imports System.IO Imports System.Data Partial Class Test01 Inherits System.Web.UI.Page Dim T01String As String Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim WRequest As WebRequest = WebRequest.Create([URL]) Dim WResponse As WebResponse = WRequest.GetResponse() Dim WStream As Stream = WResponse.GetResponseStream() Dim WStreamReader As New StreamReader(WStream, Encoding.UTF8) T01Location = WStreamReader.ReadToEnd() WResponse.Close() WStreamReader.Close() End Sub End Class
In this example, a stream of data is captured from the Wikipedia website. I am looking for resources/options to assist in (a) returning specific information from a website based on criterion to be stated in the code (rather than the entire unformatted HTML data, for example), and (b) providing a variable value for an entry required for a particular website, then returning the stream based on the result (example: allowing the entry of an address as a variable value and then returning the zip code from the USPS website). Basically, the idea is to find the correct code configuration for allowing "wildcards" when returning a stream of data from a specific website.
I'm making a small portal in ASP.net (with C#.net4) where users can login and add, edit their personal information (PI). But I don't get how to load information (stored in a SQL server DB) in the page when a specific user is logged in.
For example: If Sam is logged in, he can view his PI. When Vicky is logged in, she can view her PI.
I have looked all over for elegant solutions to this not so age-old question. How can I lock down form elements within an ASP.Net MVC View, without adding if...then logic all over the place? Ideally the BaseController, either from OnAuthorization, or OnResultExecultion, would check the rendering form elements and hide/not render them based on role and scope. Another approach I have considered is writing some sort of custom attributes, so as to stay consistent with how how we lock down ActionResults with [Authorize]. Is this even possible without passing a list of hidden objects to the view and putting if's all over? Other background info: We will have a database that will tell us at execution time (based on user role/scope) what elements will be hidden. We are using MVC3 with Razor Viewengine. We're utilizing a BaseController where any of the Controller methods can be overridden.
I have a need to display user-specific information in my master page. As a result, I have set up all of my controllers to be inherited from a "master" controller. This has worked well for other aspects of the master page, such as displaying random quotes. However, while using this technique to incorporate the user-specific information, I ran into a problem where, when I check the Request.IsAuthenticated value, the Request object is null.
Here is my "master" controller:
[Code]....
Curiously - at least to me - is that the Request object becomes populated by the time program flow hits the Home Controller: [Code]....
how can I retrieve information when the user clicked on a specific link without opening a new web page? The information is stored in the database which is through web service. For example, when the user click on a specific link, e.g the date 28 February 2010, the datagrid will display the information on 28 February 2010.