MVC :: Controlling HTML Elements In Controller's Code?
Oct 4, 2010
I pick up on the nerddinners examples, following Professional.ASP.NET.MVC wrox book. but now i'm doing some modifications for my own account. On traditionl ASP.net it was possible to interact with html elements (divs, textbox, etc... )On MVC 2 is that possible or any interaction with html must be done with jquery and how? Because i'm trying to manipulate an html element on my Controller page(DinnerController.ASPX and i had no reference to html div, as i initially supose.
first iam new here, and i have a little bit problems which i couldnt solve myself and i wish you will be my answer. ok so in my web i am using a master page and i want from another page to change the li html's elements on all its properties. how can i do that?
i have found out a way to find controls on content pages by using
var txt = $('input[id$=TextBox1]'). But how to access html elements like "<p>" tag and others in jquery when the html elements are in content page only.
I can't find the namespace where it's stored - in the view code I can execute Html.TextBox(<name>, <contents>, <html attribs>) and Html.DropDownList(<name>, <select list contents>, <html attribs>) but how do I execute these methods in controller code?
In case you are wondering why on earth I want to do this, rather than using the TextBox object, I execute Html.TextBox(....).ToString() and create html code from these objects.
I have some static (pure html) pages in my MVC application that I need to authenticate, so that not just anybody can look at them. Is there an way to do this without moving all the code to asp files and adding a controller and from there use the Authorize attribute? I would really prefer to not need to do this!
I am reviewing some existing ASP.NET code that used ASP.NET WebParts. The web parts implement IWebActionable in order to control the items shown on the web part's top-right drop down menu.
The rendered HTML for each context menu item looks something like this:
<DIV> <A class="menuItem" onclick="stuff" href="javascript:void(0)"> <IMG src="something.gif"/>Menu text </A> </DIV>
I want to use the CSS Sprites technique on the images used for the menu items. However, in order to do this I need to have some control over the rendered HTML, changing it to something more like this:
<DIV> <A class="menuItem thisItemCssSpriteClass" onclick="stuff" href="javascript:void(0)"> Menu text </A> </DIV>
I am trying to write a linq query that will retrieve all the ID's from any asp tag. Also, the query needs to group everything together alphabetically. So for the example above, the linq query should return "lbl1", followed by "lbl2", followed by "txt1", and finally "txt2". Notice it did not grab the "bodyID" because it was not part of an ASP.NET tag. Is there an easy way to do this? I am using C#, by the way.
My control consists of an ASP:Tree control and a plain HTML text input with copious Javascript, jQuery, and .net code to bring them to life together.
I have two issues.
1) I can only have one instance of this control on a page at a time. The text input is named txtUserControl, so putting a second instance on the page causes a name collision. I have the same issue with the ASP:Tree.
2) If I put my user control inside an ASP:UpdatePanel, it does not work at all. I get errors all over the page when I try to refresh it. Incidently, I have this same issue with a user control created by one of my co-workers.
I have some ideas for controls that I would like to be able to use again and again in my projects. I would like them to be rock-solid.
Lets assume that I have retrieved page html using HttpWebRequest & StreamReader. Now I would like to cut one div from the loaded html and put it in literal on my asp.net page. I know that that div has css class content. How can I do it?
</div> in this case both of this divs are part user control progress bar i'm making, from not related reason i couldn't use ASP.NET elements and had to go back to the traditional HTML elements.so to be able to give those elements dynamic attributes such as tooltip, id, class i had to add literals inside those elemtns..
I have been experiencing some very strange behavior using html buttons with the onserverclick attribute. What I am trying to do is use jQuery to designate the default button on the page. By default button I mean the button that is "clicked" when a user hits enter. In testing, I would hit enter while in an input field and sometimes the intended "default" button was clicked and the server side method defined in the corresponding onserverclick attribute was hit. Other times a post back was made without hitting the server method. In order to isolate the issue I created a minimal test case and found some very interesting results.
Client side: [Code] ....
Server side: public partial class admin_spikes_ButtonSubmitTest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ServerMethod1(object sender, EventArgs e) { _response.Text = "server method1 was hit"; } protected void ServerMethod2(object sender, EventArgs e) { _response.Text = "server method2 was hit"; } }
What I found was that everything worked as expected with this code except when I removed one of the input elements. In Firefox 3.6 and IE 8 when only one input exists on the page, hitting enter does not trigger the onserverclick, it makes a post back without even being jQuery "clicked" or actually "clicked". You can test this by starting with two inputs and clicking "test2". This will output "server method2 was hit". Then just hit enter and the output will be "server method1 was hit. Now take away an input and run the same test. Click "test2" see the results, then hit enter and you will see that nothing will change because the "test1" method was never hit. Chrome worked as expected
I am having doubt in whether to use string or string builder to append html elements like "div" and others in my page in mvc. Is there any other approach for this thing.
I want to reference a variable inside an html element without having to use an asp lable. for example at the start of the page I grab the current year and then inside a paragraph html tag I want to output this. I have tried using <%# year%> and <%=year%> but I get an error. Here is the code
I'm not sure if the topic describes my problem very well but I am creating some HTML elements (textboxes) on the fly with jQuery and I never know how many I will create (it loops through a database). I then want to get all the elements in the code behind and perform some actions (insert them into another database).
I know I can use
string n = String.Format("{0}", Request.Form["hiddenField0"]).ToString();
To get the first textbox but what if Idon't know how many textboxes I have created and want them all? Their name starts with hiddenField plus an incrementing number.
Is there a way to loop through all elements that has a name that starts with a certain string?
Basically I want to load a HTML document and using controls such as multiple check boxes which will be programmed to hide, delete or show HTML elements with certain ID's. So I am thinking I would have to set an inline CSS property for visibility to: false on the ones I want to hide or delete them altogether when necessary.
I need this so I don't have to edit my Ebay HTML templates in dreamweaver all the time, where I usually have to scroll around messy code and manually delete or add tags and their respective content. Whereas I just want to create one master template in dreamweaver which has all the variations that my products have, since they are all of the same genre with slight changes here and there and I just need to enable and disable the visibility of these variants as required and copy + paste the final html.
I haven's used Windows Forms before, but tried doing this in WebForms which I do know a bit. I am able to get the result that I want by wrapping any HTML elements in a <asp:PlaceHolder></asp:PlaceHolder> and just setting that place holders visibility to false after the associated checkbox is checked and a postback occurs, finally I add a checkbox/button control that removes all the checkboxes, including itself etc for final html. But this method seems just like too much pain in the ass as I have to add the placeholder tags around everything that I need control over as ordinary html elements do not run at server, also webforms injects a bunch of Javascript and ViewState data so I don't have clean HTML which I can just copy after viewing the page source.
Any tips/code that you can suggest to achieve the desired effect with the least changes required to existing HTML documents? Ideally I would want to load the HTML document in, have a live design preview of it and underneath have a bunch of well labelled checkboxes programmed to hide, delete or show elements with certain ID's.
I have created a Web User Control (e.g, uc.ascx) which has a few HTML checkboxes in it (using Input Checkbox).
As uc.ascx is dynamically created in my webform page (e.g. page1.aspx), I discovered that the HTML checkboxes did not persist their "Checked" status. how I can make these HTML checkboxes persist?
I just found out that there is sort of a neat control called the "Menu-control"..but the thing is that I actually whould need my menuitems to contain more then just a plain text link..
I whould need it to out put something like this as my HTML:
[Code]....
This since I whould need to style my menuitem abit different..is this possible..and how?
<div id="loginBox"> ... some other HTML elements inside here ... </div>
I use CSS to style this DIV and its contents....
#loginBox { ... } #loginBox input[type="text"] { ... } #loginBox button { ... } ... and so on ...
Now, I use a master page and the #loginBox DIV is inside the .master file.
At one point, I have the need to access the #loginBox at the server-side, so I add add runat="server" attribute. But as a result, ASP.net will change the ID of the DIV to #ct100_loginBox, and all the CSS code mentioned above.
I have a web user control menu of page. Now I want HOME (which is an hyperlink text) in menu to be Bold at the time default.aspx Loaded (Load event)! How can I do that If any one can provide code! I am using VB .Net at back.
I am working on some ASP.NET web forms which involves some dynamic generation, and I need to add some onClick helpers on the client side. I have a basic outline of something working, except for one huge problem.
There are multiple HTML tables, each generated by a different ASP.NET web control. Each table can contain overlapping field names, which is causing a problem with my JQuery click event handlers. The click event handler is linking to unintended form fields in addition to the intended form field.
I have provided a simplified sample version of the code below. This code is trying to set the value of textbox box1 when a particular radiobutton is selected in the table with id=thing1. Obviously, the jquery code will be triggered for the form fields in both tables.
The tables are dynamically added to the webpage based upon different conditions. It is possible that no tables will be loaded, only 1 table, or both tables might load. In the future, other tables could be added. Each table comes from a different .net web control.
Other than renaming the form fields to make sure they are unique across all user controls, is there a way to have JQuery act only on the intended form fields? In other words, could the table ID be incorporated into the JQuery code in a manner that does not become a nightmare to maintain later?