MVC :: Persist Viewdata That Changes In The Master Page?
Dec 21, 2010
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 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.
Web pages are, by nature, state-less objects. When you click from page to page in an ASP.net application, each request for a page is treated as a brand-new request. We use things like cookies, session-variables, and query strings to maintain state from page to page.
When you log in to an ASP.net web application using Windows Authentication, how does IIS persist your identity between pages?
I need a way to save and load the Page State in a persistent manner (Session). The Project i need this for is an Intranet Web Application which has several Configuration Pages and some of them need a Confirmation if they are about to be saved. The Confirmation Page has to be a seperate Page. The use of JavaScript is not possible due to limitations i am bound to. This is what i could come up with so far:
[code]....
I can't seem to find a way to load the Page State after being redirected from the Confirmation.aspx to the PageToConfirm.aspx.
I'm doing kind of wizard application that captures information on Contacts. The process of collecting information involves 4 pages. On one of the pages, the user is invited to upload is picture. The last page is called "preview before saving" where the user has 2 choices: (i) Go back to previous pages to make corrections or (ii) click save button to save data to DB. To be able to keep the same data all along those steps, I'm using tricks, such as serialization/deserialization, and TempData[]. On the preview page, I'd like to display all the information entered by the user, including the picture he uploaded.
Here's the basic structure of the image tag.
[Code]....
the src attribute takes values such as, src="../../Content/myPicture.gif or src = "<"%=Url.Action("Action", "Controller", "RouteValue")%>"/>
In my case, None of the above is applicable because the data needed to display the picture are in the model.My object model has 2 properties called ImageData and ImageMimeType.
My question: How to display the image on an ASP.NET MVC page by using data from the ViewData.model [as opposed to getting data from remote location using for instance Url.Action()]
i have created a user control UserControl.ascx, in Code behind file of UserControl.ascx i have created an object of a class MyClass.cs,
Like
if(!Page.IsPostback) { objMyClass= new MyClass(); }
but when i click on button of UserControl.ascx page and try to access objMyClass object then it set as null, so how to persist MyClass object when page PostBack, i wanted to keep object persist till the user access the page, when user goes out of this page then object should distroy?
in Telerik ASP.NET MVC TabStrip, I want the page to remember which tab was selected last and persist the selection through multiple page requests.
What I have is a partial view that shows in multiple pages and it contains the TabStrip. With SelectedIndex the set tab always get selected, which nullifies user's selection.
I have a master page containing a tree and 3 dropdown lists. I am populating a context menu on right click of each node, and when clicked on any item of the context menu, it navigates to required pages.
My problem is after navigating to the required page, the selected values from the drop down lists and the selected node from the tree are getting cleared.
I can set the selected values for the dropdown lists by making some properties in master page. But how do i maintain the selected node?
In my content page, i have got the valuepath of the right clicked node.
Or is there any other way than setting the properties in master page?
I have an object to hold some specific state information in my web application - I pass it back & forward between pages by making it a property of a basepage which works fine, but I lose it on postback.
Is there any way to persist this property without manually adding & reading it again from viewstate?
I have a master page setup that is used throughout my site that is basically a header with a menu. I recently added a textbox and a button to this master page which is to be a quick search box that is available anywhere in the site. When a user enters text into the search box and hits the button, I need to load the actual content page which is used to search and show search results (which also uses this same master page), and have the text entered available so the search can be triggered automatically. Again, this search text box and button is now in my master page so it could be triggered from anywhere in the app... it serves as a convenient way to do a basic search from anywhere in my app, without having to first navigate to the actual 'search page' that already exists. You can also navigate to the actual search page, which uses the same master page, where there is many more search options.I'm thrown off by the master page arrangement, which I have not used until this project. What do I do?
Is it possible to inherit a sharepoint master page(as a parent) in another application's master page which will be treated as child (i.e. after integrating that standalone application with the sharepoint application)? I am totally new to Sharepoint..
I'm trying to dynamically change the look of my main master page depending on what nested master page that the current content page is using .
So for example.
Main master page = main.master My nested page = nested.master (uses main.master) content page = content.aspx (uses nested.master)
So in the Page_Load event of main.master I want to add a switch statement that will check to see what nested master page is currently being used by content.aspx, or whatever content page is loaded.
So far I have got
protected void Page_Load(object sender, EventArgs e) { string nMaster = //This is the line of code that I am looking for. switch(master) { case "nested.master": //all my logic here. break; } }
I have a 3 level nested master pages and a content page. parent1 is the top parent, parent2 is parent of parent3 and parent3 is the parent of the content page.
I get an error 'Cannot find ContentPlaceHolder xxx...' where xxx is a ContentPlaceholder. It resides in parent2 and content page is trying to fill it.
Can content pages only use their direct parent ContentPlaceHolders or can they also use any of the higher master pages?
How to access controls in master page using javascript? The master page consists of a search textbox, on key down event of the control I call a javascript function writtern inline of the master page. I get the value of entered in textbox in that javascript function. I have tried giving document.getElementById("<%=txtSearch.ClientID %>").value as well as document.getElementById("txtSearch").value. Both display error. I have to access the textbox control from within the master page itself!
I have a question about master page.After i pushed button i would like to change my master page to another master page for that page, is that possible?
I got a Master page and nested master pages in the subfolders.
Top Level Master page
Second Level Master page inherited Top Level Master page
Third Level Master page inherited Second Level Master page
However, changes (i.e. new images & alt. name) that I made in the Top level master page did not apply to the second or third levels.My webpage has a correct front page but not in the sections. How can i correct this ?
I'm starting with ASP.NET MVC (1.0). I have a problem to resolve. I have developed a web applicaton (an application of articles like e-commerce) with a head (logo and menu). I have defined the head (logo and menu) in the Master page (site.master). Now, I must display the number of articles in the head in a field (like the number of articles in the virtual basket in the e-commerce). I can read the number of articles in the data base (in the controller), but i can't integrate it in the master page.
I am working on masterPage/sub masterpages, all worked fine until this morning.When I open a .aspx which uses masterpages, in the design view it shows the error message..
I've checked both master pages several times, all tags are matched and visual stuido itself doesn't indicate any errors. Also in debug mode the html page is generated without any problems..
My computer system froze on me, the mouse froze, cntrl-alt-del, did nothing, so I reset it. Did a disk check, and now everything seems fine except for my master Page html code which I was in the middle of editing when it happened. The VB code-behind file is still ok, the designer file still shows ok with all of the controls in it, but I can't get into desgn or source view. It just opens and gives a whole page of hesixecimal code such as as: