MVC3 Razor Cannot Work With International Characters In Custom Html Helpers
Nov 16, 2010
I currently trying to convert a ASP.NET MVC2 application to ASP.NET MVC3 razor. I have a lot custom Html helper methods, which render html output, like the one below, which renders a button with some markup :
With the release of mvc 3 rc, I've started playing around with the Razor engine. Has anybody gotten razor templated helpers to work? If so, how? I have a single helper in View/Helpers folder and a single layout page. If I move the code to the view page, it works. The error is ' not in context' for the method name. How and where do I correct this?
I'm trying to write a simple declarative html helper: [Code]....
The helper works fine if I embed it into the page I want to use it on. But if I move it to a separate .cshtml file and place that file in the ~/Views/Helpers directory, my view can't be compiled anymore because the helper is not found.According to Scott Gu's blog article on Razor it should work.
The only workaround I have found so far is placing the Html helper in App_Code and Referencing it as @[MYHTMLHELPERFILENAME].Echo(...) . This works but is a bit messy since I don't want to repeat the name of my extension method (Echo.Echo("inputstring"), nor do I want to put all of my html helpers into one single file (something like MyHtmlHelpers.cshtml).It certainly isn't what Scott announced either, so I guess I must be doing something wrong.
I don't know if this is possible but I would like to customize some of the HTML helpers autogenerated in the template. For example, I would like to replace the LabelFor with something that will allow me to specify an image with the label and also a ToolTip property so when you hover over the label you get the tool tip.
I have a application that takes a tab delimited text file parses and the inserts the data. Some of the data has international characters. My problem is it appears that my application is changing the characters. For Example the file might contain something lke this Andrlová and is converting it to this Andrlov�
I am passing this into a sproc. The datatypes for my paramater & DB Field is nVarChar(50). If I insert the data directly into my table or if I call my sproc from a query window and pass in some data it works fine, but when my app touches the data it appears to get messed with.
If I wanted to create a custom HTML helper and take advantage of the new in-built templating feature, how would I do that? It appears the templating features are internal?
In order to get Database.Open("sdfsdf"); to work in one of my MVC3 .cshtml pages I had to add a using statement at the top of the page.@using WebMatrix.Data.I added it to the Web.Config file under the <pages><namespaces> section and it didn't work.
1. Do .cshtml pages not respect that section in the web.config? If not
2. Do we need to add @using statements in every page? Or is there a better way?
I can't get helpers like @LinkShare.GetHtml and @Gravatar.GetHtml working despite have references to:
System.Web.WebPages
System.Web.Helpers
And adding @using statements.
3. What am I missing in order to get the helpers working in my MVC3 project?
I am having a trouble while trying to create an entity with a custom view modeled create form. Below is my custom view model for Category Creation form.
[code]....
When i click on save button, it doesnt bind the category for me because of i am using custom view model and strongly typed html helpers like that
I want to create a page that can read extended characters in the QueryString. While this normally is not a problem, there is one case where I don't manage: when the QueryString is manually entered (or even pasted).
Here is a simple test-case:
[Code]....
This works fine both when clicking the hyperlink or submitting the form. However, when you enter the special characters manually in the URL, or in some browsers even when you just highlight the URL bar and click Enter to open the page, the characters will be mangled. (You may need to empty your cache or perform a forced refresh to see these results.
In Internet Explorer 8:
Clicking the hyperlink shows the characters unencoded in the URL bar. Submitting the form shows the characters double-byte encoded (for example, the first character "Ã¥" (small letter a with ring above, unicode position 0xA5) is encoded as %C3%A5 instead of just as %A5. In both cases, the output shows the correct characters.After clicking the hyperlink (which creates an URL with readable characters), clicking the URL bar to highlight the URL and pressing Enter to open the page, shows square boxes instead of the characters as output. Note that you may have force a reload of the page to see this. The same happens when you enter characters manually in the URL bar.Highlighting the URL bar and submitting the double-byte encoded URL (as it is created by the form) shows the output as it should.Manually entering single-byte encoded characters ("%A5%B8%A6") will again show boxes instead of characters.
I'm trying to have all my views inherit from a custom class so that I can add certain behaviour and values to all pages, but I'm having some issues. I tried subclassing System.Web.Mvc.WebViewPage but I'm forced to implement an Execute procedure that I don't know what it should do. Also, if I try to access the Context variable, I get a null reference (really weird). This leads me to think that I may have the wrong base class.
Why are Razor views not generated as partial classes? Making them partial classes gives us the option to have a code behind where we can do some of the stuff we're forced to do in the template itself in the code behind file.
Yes, I know the standard "go-to" thing is Html helper but I don't want to use Html helpers for these things as they are too specific to the view in question and besides, having a clutter of extension methods is just not the way to go.
I'd like to see Razor views generated as partial classes.
Would like to add a third party test framework (such as NUnit or MbUnit) to the drop-down list of test projects for the ASP.NET MVC3 type project in Visual Studio 2010.
This had worked before for ASP.NET MVC2 and prior, but the msdn instructions are not accurate and does not work. Creating the registry keys in the HKEY_CURRENT_USER seem to delete the keys every time the VS-2010 starts, the HKEY_LOCAL_MACHINE does not follow the same tree structure.
how to add a third party framework under ASP.NET MVC3?
I have a WebForm search page that gets occasional hits from international visitors. When they enter in text, it appears to be plain ASCII a-z, 0-9 but they are printed in bold and my "is this text" logic can't handle the input. Is there any easy way in ASP.NET to convert unicode characters that equate to A-Z, 0-9 into plain old text?
I have a webform (for posting ads) that has an AJAX HTML Editor (for ad description) and AJAX fileupload control to upload & display some images. If I don't upload any images (no postback is done) then the html editor will display the international characters correctly and the ad is then stored correctly.
As soon as I upload an image for display (and postback is automatically done), then the html editor will replace all the international characters with unrecognized characters. And the ad will be stored with those incorrect characters.
Is there any way I can avoid this? I'm still not exactly sure why the html editor automatically replaces all my characters when postback is done.Or is there another html editor that manages this better?
As concluded in this thread http://forums.asp.net/t/1583508.aspx MVC 2 converts some disallowed characters in the 'id' property of tag to the HtmlHelper.IdAttributeDotReplacement but the code to do that is internal to mvc and not exposed as i can see. Will I need to copy the code into my project so my custom herlps can do the same?
I have been using web forms and I have been let down by them. I hate the way it mangles my element id's and names. I want to have full control over my html and have the ability to have multiple forms on one page.
I do not use view state or post backs. All my server communication is done using JQuery ajax and sometimes page methods.
My pages do not make use of any runat=server controls other than occasionally using the repeater.
For now I have been using inline code like the following but I like the mvc html helpers.
EXAMPLE:
[Code]....
At the moment, using the asp.net mvc framework is not an option but I would like to use the HTML helpers in my asp.net application.
Is this possible to use the mvc html helpers or do I have to create my ow helpers?
I just upgraded my mvc 1.0 project to 2.0 using the wizard. My project builds fine however, my html helpers that I have used, does not render the input's ID tag. For some reason, only some controls render and some do not. For example:
[code]....
I thought it had to do with the fact that the value is empty, but from the two examples, they are nearly identical. Is this a bug? All was working before I upgraded.
I´m learning mvc and I found a problem. I have a product table that stores currencies in integers. On the other hand I have a table name currency that stores each int id with the currency name.
On html.dropdownlist I followed the pattern:
The name of the form field (ArtistId) The list of values for the dropdown, passed as a SelectList The Data Value field which should be posted back with the form The Data Text field which should be displayed in the dropdown list The Selected Value which is used to set the dropdown list value when the form is displayed
This was great for Forms in order to display selections. Right know I´m finishing my details views and I need to use the int id on product table but display the name on currency table associated to that int id.
Does anyone knows if it exist an html helper that renders the Data Text Field that should be dsiplayed on the View taking into consideration the int number?
Something like @html.display("Name", model.product.currencyid) where name is pulled from db.currency?.
So, most of the MVC examples I find are C#, so I seem to have trouble finding samples ....(bear with me, I'm a newbie) with that said, if anyone can point me in the right direction,
I simply want to be able to apply htmlattributes / styles to my select box