MVC :: The GenerateId() Methods Breaking ID Generation?
Jan 5, 2010
The ASP.NET MVC RC change the GenerateId() behavior in theTagBuilder class. I know you followed the
HTML 4.01 Specification, but there are so many non-standard HTML ID existed in the world.For example, there are columns in the database tables that contains non-ASCII characters ( e.g. Chinese, Japanese, ... ). Due to Model passed to the View, the input field ID will contains that characters. For this new GenerateId() feature will breaking changes our original ASP.NET MVC application. All the ID will just gone.
View 5 Replies
Similar Messages:
Jun 29, 2010
When upgrading to mvc2 i noticed some of my javascript that was keying on "Points[0]_Id" (this is invalid for an html id btw) started to fail. I pulled up the source and noticed that the TagBuilder class now generates valid client id's and replaces all invalid characters with the "IdAttributeDotReplacement" (which is a terrible name now, since it's not just a dot replacement character anymore). I started to look for a way to generate client id's using a helper built into mvc and came across HtmlHelper.GenerateIdFromName, but this still generates ids the invalid way!
TagBuilder.GenerateId( "Points[0].Id" ) = "Points_0__Id"
HtmlHelper.GenerateFromName( "Points[0].Id" ) = "Points[0]_Id"
IMO: the tagbuilder class or the GenerateFromName code should not be duplicated in two different spots or else you will get errors like this. Also I consider this change made to TagBuilder.GenerateId to be a breaking change and should be included in the breaking changes section of the release notes.
View 2 Replies
Aug 16, 2010
I have an extension method as follows:
public static class PageExtensions
{
public static int GetUserId(this Page targetPage)
{
var user = Membership.GetUser(targetPage.User.Identity.Name);
return (int)user.ProviderUserKey;
}
}
Now in a page I need to use this method in a static WebMethod, so I have added another 'extension method' to PageExtensions:
public static int GetUserId()
{
return (int)Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey;
}
and I call it as follows in my WebMethod: PageExtensions.GetUserId()
View 1 Replies
Jul 23, 2010
public class CacheHelper { /// <summary> /// Removes object with the specified key. /// </summary> /// <param name="key">The key.</param> [code]....
I have this methods for caching..I need to change this methods to use in aDictionary<string,object>
How do I need to change this code Because I am new to asp.net I am still learning..
View 12 Replies
Aug 26, 2010
I have a little web app, that consumes a web service. the main page runs a search - by passing params to a particular ws method, and then i bind the results to a gridview.
I have implimented sorting and paging on the grid, by putting the datatable that the grid is bound to in the viewstate and then reading/sorting / filtering it when necessary - and rebinding to the grid.
recently - as the amount of data coming back from the WS has increased dramatically when i try to page/sort etc i get
The connection was reset
The connection to the server was reset while the page was loading.
having googled around a bit it seems that a very large viewstate is to blame for this. but surely the only other option is to
Limit the results stick the datatable in the session rather than the viewstate dunno :)
previously i did have the datatable in the session, as some of this data needed to persist from page to page - (not being posted however so viewstate was not an option), but as the amount of data rose, and the neccessity to persist was removed, i used the viewstate instead. thinking this was a better option that the session anyway mostly because of the amount of data the session would have to hold, and the number of users using the app.
i actually thought that when the viewstate got very big, that .net split it over more than one hidden viewstate field, but it seems all im getting is one mamoth one that i have trouble viewing in the source..
can anyone enlighten me as to how to avoid the error im getting.. if it is indeed to do with the amount of data in the viewstate
View 2 Replies
Sep 16, 2010
I am beginner in web applications development. I started one little project and host it on source forge "https://homoco.svn.sourceforge.net/svnroot/homoco". And I started implementing authentication in this application to learn how it works. From my experience people never use out of the box things so I want to implement this stuff alone (like in real world projects). So some questions:
1) Is there any reason to use membership out of the box? To use database table schema, stored procedures etc. that tool generate for developer. I think that this lower control over code and I decided to implement it my self. I don't know if I am right.
2) Is my approach in this demo project good or bad (if someone have time I like to do just a little code review)? I created database based on business rules. Not using database schema that membership provider require. Extend "MembershipProvider" class to satisfy my needs. Implement queries to database myself.
3) Now, this question is a little wired but I have to ask it. If we make custom Membership Provider and do sql queries alone, implement all MembershipProvider class methods ourselves, and in application use Membership.blabla() why is this approach different from not extending MembershipProvider class and putting all this methods in some unique class and call its methods then? I hope that someone understand what I ask here.
I am sorry for three questions, but I really trying to find the best way to implement this feature in my demo project like it is a real world application.
View 3 Replies
Mar 4, 2010
DateTime.Now.ToString("h:mm tt")
What is the proper way to.. escape if that is the proper term, that html entity so that it will produce the output Code: 8:53 am and the non breaking space is rendered correctly be the browser?
View 1 Replies
Aug 16, 2010
It appears as though as soon as I intoduce a CPE function which is targeted to a floating panel/DIV, the DIV that has a height/width set to it dimension completely loses it value, or so it appears. In other words the DIV holds it's width and height parameters if the CPE function is not added to the page. see the screenshots and code.
Figure 1
without CPE function
Figure 2.
with CPE function
Here is the code to produce figure 1 result.
[Code]....
Here is the code to produce figure 2 result.
[Code]....
I have spent majority of my day trying to figure out why, I simply do not have and answer and was hoping if somebody has already seen this problem or know how to configure it for the floating DIV to hold it's width and height property when the CPE fucntion is added to the page.
View 15 Replies
Jan 5, 2010
I have an aspx page and when the user clicks a button the following code runs:
Response.Write(string.Format("<script language='javascript'> window.open('DisplayImage.aspx?DocumentID={0}', 'window','HEIGHT=600,WIDTH=820,top=50,left=50,toolbar=yes,scrollbars=yes,resizable=yes');</script>",
id));
The variable id is declared and it's value set eralier in the method.When the new window opens it displays the image properly, but the existing page suddenly loses all of it's styling. The links double in size and change font family. Does anyone know a way to retain styling on the calling page?
View 3 Replies
Apr 1, 2010
I had the same problem and used this posted to fix some of it.Now I had it on
SqlDataSource1.SelectParameters.Add("dateListedSince", TypeCode.DateTime, Date.Now.AddDays(-30))
any ideas how to fix that?
View 2 Replies
Nov 2, 2010
I have used jquery in one omy requirement. I would like to know why this breaking on jscript error will occur?
View 1 Replies
Jan 20, 2011
I have an app I am transitioning to MVC3 to see what the upgrade path is essentially. I've hit a snag. I believe I've run into a change that may be due to the changes for Dependency Injection in action filter attributes, but I have been unable to track down the cause, and the "correct" solution.This project uses StructureMap and NHibernate. The NHibernate session is started at the beginning of each request, and ends at the end of each request, thanks to a small module. This is just to give an idea of the stack involved...o I have a few custom Authorize attributes (Inheriting from AuthorizeAttribute) that perform some more complicated authorization logic for specific actions that they decorate. Part of their functionality involves using two repositories which they must either (a) have injected, or (b) get from the StructureMap ObjectFactory themselves. In MVC2 I was using option b, so that the CONSTRUCTOR of the attribute looked like this:
[Code]....
This worked fine, as in MVC2 the constructor was called each time the attribute was evaluated. This BREAKS in MVC3, where it would appear that this is no longer the case. Due to this apparent change, the FIRST time this attribute is evaluated, it runs fine, but each subsequent time, any calls in the repositories fails because it claims the NHibernate Session object hasn't been started! The reason being, as far as I can tell, that the CustomAuthorizeAttribute is created once, and then held in whatever state it exists in at that point for the lifetime of the application... Which means that the dependencies inside of it (Which SHOULD go out of scope at the end of each request, and be reinstantiated / fetched at the beginning of subsequent requests), are instead persisting with it becoming stale after the first evaluation.After banging my head against the desk for a few hours, I realized that simply moving these calls to the ObjectFactory into the AutorizeCore method made everything work again.Now, all of this was of course, a hack, because there wasn't a good easy to do real dependency injection into attributes in MVC2. I hear that is changed in MVC3, and I am wondering if this behavior is in response this change, and if so, what do I need to do to make this work?
View 3 Replies
Oct 18, 2010
Has anyone ever seen an instance where Visual Studio (or possibly SourceSafe) would decide to insert about 9 million non-breaking space characters at the end of a line in an ASPX file?I'm trying to figure out if this could be some weird bug, or if a programmer fell asleep with her head on the space bar, while in design view... and then went ahead and checked the page into SourceSafe without noticing what she'd done.
View 1 Replies
Mar 11, 2011
Before I get started it's important to note that this issue only happens in IIS7 and IE7, which means it works fine in all our IIS6 environments and Chrome and Firefox hitting IIS7.
We have an ASP.NET 3.5 application that is doing a very basic window.open to open our report server.
ex.
window.open('http://555.55.5.55/ReportServer', 'Reports');
Once launched the user is prompted for their username and password. If the user selects cancel and goes back to the parent window they can use all the Ajax functionality just fine; however, if the user logs into report server then all the Ajax functionality on the parent window ceases to work (example error below). We changed the javascript line above to popup a window to google and everything worked fine. We even tried changing it to '_self' to act like a redirect and we had the same results, everything failed. The issue appears to be related to something in IE7 and the authentication popup.
We've already set the application pool hosting the site in IIS7 to classic mode and this did not resolve our problem.
Error:
Error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by call to Reponse.Write(), response filters, HttpModules, or server trace is enabled.
Details: Error Parsing near ' <!DOCTYPE html PUB'.
View 3 Replies
Jun 25, 2010
I am trying to break a large web.config file into smaller parts. This has been covered a few times on different stack overflow questions (like this or this) which recommend using the configSource or file attributes. The problem is this does not work for the system.webServer section used to configure IIS 7 in integrated mode. This is particularly bad for web.config files that have IIS Rewrite rules which tend to bloat the files.
View 1 Replies
Jun 25, 2010
I've got a dynamic data application that I would like to use several Ajax Controls on (I.E. combo box with auto complete instead of dropdown for foreign key edit fields). I'm running into problems when I try to edit tables. I replaced the regular script manager with the one defined in the AJAX tool kit on the master page (Site.master). The combobox displays, and the table gets updated when you click update/insert, BUT, when the site tries to redirect back to the list view it barfs up a funny URL that the browser can't resolve. EX: www.example.com/TABLENAME/%2fTABLENAME%2fList.aspx when it should be www.example.com/TABLENAME/List.aspx. It works fine with the standard scriptmanager, but the ToolKit's manager doesn't. I'm using Visual Web Developer 2010 express, language is VB, DynamicData application uses LINQ to SQL.
View 5 Replies
Apr 22, 2010
I have just upgraded a large project to MVC 2 (50+ controllers) and whilst the project builds fine I am having issues in several places because it looks like the way the Controller.UpdateModel method handles emtpy strings has changed.
In MVC 1 it set the associated property to an empty string but in MVC2 it's setting it to null.
View 2 Replies
Apr 22, 2010
I have just upgraded a project from MVC 1 to 2 and I have come across an issue with fields updated via UpdateModel which contain an emtpy string.
In MVC 1 the associated property would be set to String.Emtpy or "", but in MVC 2 it's set to null. This is causing me all kinds of problems
View 1 Replies
Jan 15, 2010
When I right click on ASP.NET development server, it says http://localhost:1394/testing
as the ROOT URL. This does not go well with my code. I think the main reason is my code assumes it is in the root folder, and things start breaking when that is not the case. If I deploy this website, then it all works, but I lose my debugging capabilities. Is there a way I can make it skip the name of the folder (which is "testing" in this case)?I am using virtual URL. Things break on virtual urls, not on static ones. (But virtual url works fine when deployed, and make sure it is in the root folder, otherwise it will not work.) [URL]
View 2 Replies
Apr 24, 2010
Was the new ViewStateMode property introduced to avoid breaking the existing EnableViewState?
Does setting EnableViewState = false at the page level cause the ViewStateMode setting to be ignored?
PS: What is CW in stackoverflow?
View 1 Replies
May 20, 2010
It's breaking at spot below in RowUpdating Event with the error msg "Index was out of range. Must be non-negative and less than the size of the collection"
txtAddress = CType(GridView1.Rows(e.RowIndex).FindControl("txtAddress"), TextBox).Text
Here's my code:
ASP
<form id="form1" runat="server">
<asp:GridView id="GridView1" runat="server" CssClass="Grid" DataKeyNames="ID"
AllowPaging="false"
OnRowEditing = "GridView1_RowEditing" OnRowDeleting = "GridView1_RowDelete"
OnRowUpdating = "GridView1_RowUpdating"
AutoGenerateColumns="False"
EnableViewState="false" ShowFooter="true">
<FooterStyle ForeColor="#4A3C8C" BackColor="#B5C7DE"></FooterStyle>
<HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<%#Eval("ID")%>
</ItemTemplate>
<FooterTemplate>
<asp:Button id="btnAdd" Runat="server" Text="Add New" CommandName="Insert"></asp:Button>
</FooterTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" EditText="Edit" HeaderText="Edit" CausesValidation="false"/>
<asp:CommandField ShowDeleteButton="true" EditText="Delete" HeaderText="Delete />
<asp:TemplateField HeaderText="mlsnum">
<EditItemTemplate>
<asp:TextBox ID="txtMls" runat="server" Text='<%# Eval("mlsnum") %>'/>
</EditItemTemplate>
<ItemTemplate>
<%#Eval("mlsnum")%>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtMLS" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqMLS"
runat="server" ControlToValidate="txtMLS"
Display="Dynamic"
ErrorMessage="You must enter an MLS #.">
* </asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address">
<EditItemTemplate>
<asp:TextBox ID="txtAddress" runat="server" Text='<%# Eval("Address") %>'/>
</EditItemTemplate>
<ItemTemplate>
<%#Eval("Address")%>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAddress" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqAddress"
runat="server" ControlToValidate="txtAddress"
Display="Dynamic"
ErrorMessage="Please enter an address.">
* </asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Subdivision">
<EditItemTemplate>
<asp:TextBox ID="txtSubdivision" runat="server" Text='<%# Eval("subdivision") %>'/>
</EditItemTemplate>
<ItemTemplate>
<%#Eval("Subdivision")%>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtSubdivision" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqSubdivision"
runat="server" ControlToValidate="txtSubdivision"
Display="Dynamic"
ErrorMessage="Please enter a Subdivision.">
* </asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Price">
<EditItemTemplate>
<asp:TextBox ID="txtPrice" runat="server" Text='<%# Bind("Price") %>'/>
</EditItemTemplate>
<ItemTemplate>
<%#Eval("Price")%>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtPrice" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqPrice"
runat="server" ControlToValidate="txtPrice"
Display="Dynamic"
ErrorMessage="Please enter an Price.">
* </asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Agent">
<ItemTemplate>
<%#Eval("Agent")%>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAgent" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqAgent"
runat="server" ControlToValidate="txtAgent"
Display="Dynamic"
ErrorMessage="Please enter an Agent.">
* </asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Comment">
<EditItemTemplate>
<asp:TextBox ID="txtComment" runat="server" Text='<%# Eval("Comment") %>'/>
</EditItemTemplate>
<ItemTemplate>
<%#Eval("Comment")%>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtComment" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqComment"
runat="server" ControlToValidate="txtComment"
Display="Dynamic"
ErrorMessage="Please enter a Comment.">
* </asp:RequiredFieldValidator>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="PhotoAd">
<EditItemTemplate>
<asp:checkbox ID="chkPhotoAd" runat="server" Checked=true/>
</EditItemTemplate>
<ItemTemplate>
<asp:checkbox id="chkPhotoAd" runat="server" Enabled="true" />
</ItemTemplate>
<FooterTemplate>
<asp:CheckBox ID="chkAddPhotoAd" runat="server" Enabled="true" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="LineAd">
<EditItemTemplate>
<asp:checkbox ID="chkLineAd" runat="server" Checked=true/>
</EditItemTemplate>
<ItemTemplate>
<asp:checkbox id="chkLineAd" runat="server" Enabled="true" />
</ItemTemplate>
<FooterTemplate>
<asp:CheckBox ID="chkAddLineAd" runat="server" Enabled="true" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="# of Balloons">
<EditItemTemplate>
<asp:TextBox ID="txtNumBalloons" runat="server" Text='<%# Eval("NumBalloons") %>'/>
</EditItemTemplate>
<ItemTemplate>
<%# Eval("NumBalloons")%>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="intNumBalloons" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
VB
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Try
BindData()
Catch ex As Exception
'Error Handler
lblError.Visible = True
lblError.Text = Err.Description()
'lblError.Text = Err.Number
End Try
End If
End Sub
Sub BindData()
Dim ds As New DataSet
Dim objDS = New DataSet
Dim cmd As SqlCommand
Dim dataAdapter As New SqlDataAdapter
strSqlConnection = ConfigurationManager.AppSettings("ConnectionString")
sqlConn = New SqlConnection(strSqlConnection)
strSqlStatement = "select * from tblAdSignup"
cmd = New SqlCommand(strSqlStatement, sqlConn)
dataAdapter.SelectCommand = cmd
dataAdapter.Fill(ds)
objDS.DataSetName = "ds"
GridView1.DataSource = ds
GridView1.DataBind()
End Sub
Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
GridView1.ShowFooter = False
GridView1.EditIndex = e.NewEditIndex
BindData()
End Sub
Protected Sub GridView1_RowCancel(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
GridView1.ShowFooter = True
GridView1.EditIndex = -1
BindData()
End Sub
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
'Try
'BindData()
'Dim eRow As Int16 = e.RowIndex
'Dim id2 As Integer
ID = GridView1.DataKeys(e.RowIndex).Value
'ID2 = GridView1.DataKeys(1).Value
Dim txtAddress, txtAddress2 As String
'Dim test As Integer
'test = GridView1.Rows(0).Cells.Count
'Dim strAddress As String = DirectCast(GridView1.Rows(e.RowIndex).FindControl("txtAddress"), TextBox).Text
'Dim txtAddress As TextBox
'txtAddress = DirectCast(GridView1.Rows(e.RowIndex).FindControl("txtAddress"), TextBox)
txtAddress = CType(GridView1.Rows(e.RowIndex).FindControl("txtAddress"), TextBox).Text
'txtAddress2 = GridView1.Rows(0).Cells(0).Text
'txtAddress2 = CType(GridView1.SelectedRow.FindControl("txtAddress"), TextBox).Text
'
'Catch ex As Exception
' 'Error Handler
' lblError.Visible = True
' lblError.Text = Err.Description()
' 'lblError.Text = Err.Number
'End Try
End Sub
View 8 Replies
Oct 25, 2010
Currently, I have long script which does major processing and then puts data into temp table.
Finally I read data from this temp table to show on the chart, based on user's selection of parameter. So I can divide my query into two parts and while I am researching this,
Is it possible to do processing in one Datasource and read table from second datasource?Is it even possible?
If not, what is recommended method for this (breaking large processing into small one)?
View 2 Replies
Apr 20, 2010
I have developed a custom visual web part for SharePoint 2010. The function of the web part is to interact with a BI server and pull back html for different reports and write the html to the page to display the reports (the reports are specified by the user in the web part properties menu). The problem is that the BI reports have <form> tags in them with a bunch of hidden input fields (which are used for drill down, paging, etc.). When I include the html that has these <form> tags, it breaks the web part tool pane buttons (OK, Cancel, Apply). If I pull out the <form> tags, the buttons work just fine... Does anyone know what is causing this? When I say that the web part tool pane "breaks", it is just not doing anything - no javascript errors, server errors, nothing... I just click the buttons and nothing happens.
View 1 Replies
Feb 3, 2010
I have some code that is used to replace certain page output with other text. The way I accomplish this is by setting the Response.Filter to a Stream, Flushing the Response, and then reading that Stream back into a string. From there I can manipulate the string and output the resulting code. You can see the basic code for this over at [URL] However, I noticed that Page Caching no longer works after the first Response.Flush call.
I put together a simple ASP.NET WebApp as an example. I have a Default.aspx with an @OutputCache set for 30 seconds. All this does is output DateTime.Now.ToLongTimeString(). I override Render. If I do a Response.Flush (even after the base.Render) the page does not get cached. This is regardless of any programmatic cacheability that I set. So it seems that Response.Flush completely undermines any page caching in use. Why is this?
extra credit: is there a way to accomplish what I want (render output to a string) that will not result in Page Cache getting bypassed?
ASPX Page:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestCacheVsFlush._Default" %>
<%@ OutputCache Duration="30" VaryByParam="none" %>
<%= DateTime.Now.ToLongTimeString() %>
Code-behind (Page is Cached):
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
}
Code-behind (Page is not cached):
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
Response.Flush();
}
Code-behind (Page still is not cached):
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
Response.Cache.SetCacheability(HttpCacheability.Server);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(30));
Response.Flush();
}
View 1 Replies
Dec 20, 2010
I'm a junior programmer, i do not get the concept of MVC! My method of coding is seperating my application design into 3 layers:
Presentation Layer
Business Layer
Data Access Layer
I find it very practical to a junior developer or at least to me, so i do not really get the point of MVC since i believe MVC just tries to separate logic from UI. Right?
I decided to have this book to help me have a better idea on code design:
http://www.amazon.com/Professional-ASP-NET-Design-Patterns-Millett/dp/0470292784/ref=sr_1_1?ie=UTF8&qid=1292836936&sr=8-1
Note: i also decided to start learning about TDD.
QUESTION:
Is breaking my code design into 3 layers (presentation, dal and business) meets MVC concept?
View 4 Replies