I created a base Controller for the other Controllers to derrive from, and in that controller I overrode the OnActionExecuting method so that each time any Controller executes a method, I can run some code. In that code I added a value to ViewData, and in the Master View I want to either display certain items or not based on the value of the ViewData item set. The problem is, once I get to the Master View, the ViewData doesn't have anything in it. I am not sure what I'm doing wrong.
making my first steps with asp.net mvc and I actually create a (very) small website.I have 1 controller : TasksController1 view : Tasks/Index.aspx1 Partial View : Tasks/AvailableSorting.ascx In my controller I have 2 methods :
[Code]....
In my Tasks/Index.aspx, I add my partial view (<% Html.RenderPartial("AvaliableSorting"); %>)
That sounds simple. But, It just doesn't work : the Index return a list of Task and the parial view (should) return a list of string.The index.aspx works perfectly, but the partial view doesn't get the right model ! he gets the model of the Index page (list of Task).
"When a partial view is instantiated, it gets its own copy of the ViewDataDictionary object that is available to the parent view. The partial view therefore has access to the data of the parent view. However, if the partial view updates the data, those updates affect only the partial view's ViewData object. The parent view's data is not changed."Is there a common way around this? For instance I have a View containing two Partial Views (User Controls) that source the same data from the Parents ViewData. The first Partial View is able to update (add/delete) certain data from the Parents View Data, however the second Partial View sources the same data but obviously isn't reflecting the changes owing to the above MSDN statement.
I have a nested master page with radio button controls and one or two dropdowns (depending on the radio button chosen). The dropdown(s) contains either carriers or our customers. If the dropdown type is customer, we display another dropdown to determine what type of customer (current, former, or test). Once a carrier or customer is chosen, an action is called to "set" the customer information in the session. This all works great. The problem is trying to persist the dropdown type, customer type, and customer or carrier chosen over each action/view. Once a customer or carrier is set, the user can chose different menu options (also on the master page) to perform different tasks against the customer or carrier data. I am still fairly new to asp.net mvc and to jquery and ajax. I have racked my brain and tried several different scenarios to get this to work. I tried a master view model which got inherited by the other view models. I couldn't get that to work. Now I am trying a base controller and just setting things in viewdata, but I still can't get it to work once I move to next controller/action/view. Can someone please let me know the best practice for doing this? And or tell me where I'm going wrong? I am at a pretty critical point in this project and am running out of time. The code follows:
My Original Issue here:Help! I've got repository access in my MVC master page! Refactor time!What originated as a re factoring job to improve performance has revealed new issues. If I should keep this in my original question - feel free to delete this one, and rename the old one to something more relevant. I'm using an ActionFilter applied to a base controller to load some user-customized settings. My issue is that I save these settings in the filterContext.Controller.ViewData object but its coming through as null on my master page. Here is the relevant code:
Action Filter [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] public class StoreSettingsActionFilter : ActionFilterAttribute
I like ASP.NET MVC, because I like to have direct access to my web site's structure. However there's 1 thing that I don't like.
In Ruby on Rails to send data from Controller to View is really easy:
# Get a user in controller
@user = User.first(:id => 1)
# Display him in a view
<%= @user.id %>
In ASP.NET MVC it's much harder
// Controller User user = new User(1); ViewData["user"] = user; // View <% User user = (MyNamespace.User)ViewData["user"]; %> <%= user.Id %>
With this ViewData thing all benefits of static languages go away, and we waste time boxing/unboxing objects.
P.S. Don't tell me to use Model object, because this is also true for other variables like integer.
And another question:
I'm trying to implement a comfrtable access to data. Since I can't use LINQ to SQL as I use Postrgresql, I have to do it on my own. I'm tired of direct SQL queries, so I'm trying to implement something like this:
I'm trying to pass a list of data from the column CICodeID in my database where the currently logged in users name matches the UserId.
Here is my controller: [Code]....
And here is my view: [Code]....
This is the exception I'm getting at run time:"Cannot compare elements of type 'System.Linq.IQueryable`1'. Only primitive types (such as Int32, String, and Guid) and entity types are supported."
Members view (index) that lists members that users can select to show a partial view in the same view with details for the selected memberUses jquery (Ajax.ActionLink) to call a partial view method in the members controller to then load the members detail sectionWorks fine up to here....but I'd like to load the partial view with "member" details for a default or random member on initial load -- ie not through the Actionlink selectionHow do I invoke the partial view method on the initial load?
For some reason the code, <% Response.Write(Request.QueryString["title"]); %>, does not retrieve the data in this case. It works fine if I put it in the title tag though.
I have a page where it is getting overwhelmed with code like:ar textBox = $get("<%=textState.ClientID%>");This requires me to have my JavaScript inside the page instead of nicely tucked in a js file. Is there a better approach to this?
document.getElementById doesn't work because then I end up with code like this: var textBox = document.getElementById("originDestinationControl_textState"); var textBox = document.getElementById("ctl00_ContentPlaceHolder_originDestinationControl_textState");
So far it seems like I get something figured out then run into another issue... Anyways, I was finally able to grab an ID from a table and enter the value into a Label using this code:
[Code]....
Now i want to make things trickier by grabbing the last value enterd. Now there will possibly be multiple people using the application simultaneously, i think it is still possible to do this. Here is the statement that enters VALUES into the table that generates the CaseID that i want to grab from:
[Code]....
From what i have researched, I may need to do a WHERE some where to grab the @@IDENTITY. I am having trouble figuring out where the @@IDENTITY goes, and possibly the correct syntax as well.
I have a registration form which is working perfectly well, I need to enhance it slightly from where it is. As it is users are able to register for an account wether the email has been previously used/allocated in the user db.A client side call to the IsEmailAvailable function works great, just not working correctly server side. Here is the code.
My function:
[Code]....
And my if statement:
[Code]....
So my question is, how can I pass the end value of the IsEmailAvailable function to my if statement correctly.
I'm using asp.net - I need to grab live data from a website. Here's an example:
[URL]
That website provides live data share prices. I need code to retrieve the share price from the website and display it in my own page. I know you can get share price widgets online but all I need is a simple way to retrieve the share price values.
In one of my web app's pages, the code behind needs to grab the UserId of the person logged in, so that it can then be inserted into a table which was added to the original aspnetdb.mdf. This table contains a column with a uniqueidentifier primary key which is in direct relationship with the aspnet_Users table; however I seem to have trouble retrieving the UserId. This table contains the additional information of a user which is not included in the provider, and it has a one-to-one relationship with aspnet_Users.
I hope this makes sense. I haven't written any code for it yet; I'm only at the thinking part of this stage. But my mind keeps going blank.(perhaps I need a break from the solution???).
I have a drop down list control that I need to pull the value from in the code behind of the page, modify it and redisplay it. The modifying and redisplaying I've got no problem with, it's grabing the value from the drop down control.
I am having a bit of trouble pulling from a stored procedure of mine. I want to return a string, for this example I tried to grab the mail address which is a varchar in my database.
DataTable siteParams = new DataTable(); using (SqlConnection con = new SqlConnection(conString)) { using (SqlCommand cmd = new SqlCommand("siteParametersGetAll", con)) using (SqlDataAdapter da = new SqlDataAdapter(cmd))
Now, I want to be able to grab certain rows without using 0,1,2,3