.net - MVC 2, Spark Engine And Strongly Typed Html Helpers?
Jan 14, 2010Will I get the advantage of the new Strongly Typed Html Helpers with asp.net MVC 2 if were to use the spark engine for rendering?
View 3 RepliesWill I get the advantage of the new Strongly Typed Html Helpers with asp.net MVC 2 if were to use the spark engine for rendering?
View 3 RepliesI try to use HtmlHelper.TextBoxFor with spark view engine but view crashed with exception "Dynamic view compilation failed. 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'TextBoxFor' and no extension method 'TextBoxFor' accepting a first argument of type 'System.Web.Mvc.HtmlHelper' could be found(are you missing a using directive or an assembly reference?)".
It is my _global.spark:
<use namespace="System"/>
<use namespace="System.Linq"/>
<use namespace="System.Text" />
<use namespace="System.Web.Mvc"/>
<use namespace="System.Web.Mvc.Html"/>
<use namespace="System.Web.Routing"/>
<use namespace="System.Linq.Expressions" />
<use namespace="MyModels" />
In spark-view using:
${Html.TextBoxFor(m => m.UserName)}
How can I use css and other attributes such max length with the strongly typed views ?
View 1 RepliesI am using the MetaDataType DataAnnotation to validate my models in an MVC2 application. I also apply the DisplayFormat annotation so that currencies and dates are formatted the way I want. This method works for the original Html Helpers such as :
[Code]....
When I used the new strongly typed helpers:
[Code]....
the formatting never gets applied. Is there a way around this?
So, I am having a hard time getting this to work. I am trying to add some typographic HTML codes to some labels I have strongly typed to my model.
<%: Html.LabelFor(m => m.Name) %>
I am using data annotations to customize the DisplayName of the property:
[DisplayName("Your friend’s name")]
public string Name { get; set; }
However the actual code is being displayed for the label:
Your friend’s name
I have also tried just using the old write method:
<%= Html.LabelFor(m => m.Name) %>
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
<%=Html.TextBoxFor(model => Model.Category.OrderNo) %>
My html source looks like this
[code]....
How can i fix this?
I know we can use the HTML helpers, but how about the strongly typed one's?
Html.LabelFor()
I've got a problem with ASP.NET mvc stongly typed helpers.Here is example of wrong behavior:
[Code]....
will generate following inputs:
[Code]....
As you see generated name is wrong, because of wrong algorithm of extracting property name from lambda.The only way to avoid this bug is to create PartialView and pass item as its context.May be somebody knows other solutions? Do you consider it a bug or right behavior?
I want strongly typed Label but not working at all. Can you fix the below use of Label to display like @Html.Label("FirstName"). MVC3 Razor.
View 4 RepliesI was wondering if it is possible to create a custom strongly typed HTML Helper in ASP.NET MVC 2? Creating a regular (read not-strongly-typed) helper is straightforward but i am having difficulty creating strongly typed versions. For example, I would like to create a DatePickerFor html helper...
View 3 RepliesNow I found out how to create custom html helpers
using System;
namespace MvcApplication.Helpers {
public class InputlHelper {
public static string Input(this HtmlHelper helper, string name, string text) {
return String.Format("<input name='{0}'>{1}</input>", name, text);
}
}
}
Now how to turn it into a strongly typed helper method InputFor Like it is in the framework?I don't need the Html.TextBoxFor method, I know it exists. I am just curious in how to implement this behavior myself and used this as a simple example.PS. I was looking in the mvc source code but couldn't find a trace of this mysterious TextBoxFor. I only found TextBox. Am I looking at the wrong code?
The strongly typed helpers are now written like this -
<%= Html.TextBoxFor(model => model.State) %>
I need to add a default value to a textbox. In the prior version of Asp.Net MVC it was easy to assign a default value. I thought doing the following would work in MVC 2-
<%= Html.TextBoxFor(model => model.CountyId, new{ value = 840 })%>
This, however, does not work for me in Asp.Net MVC 2. The value is still blank for the textbox. I want to make sure that this isn't some random error that I am having. Has anyone else encountered the same problem? I have searched and searched to find more information on the default property for the html helpers in MVC 2, but I can't find anything. Does anyone out there know how to correctly assign a default value to a textbox in Asp.Net MVC 2?
Is there any way to change the HTML that is generated by default when you create a strongly typed view in MVC2?I currently get a structure like this:
[Code]....
I want to change it to a structure like this:
<div>
<div><%: Html.ValidationMessageFor(model => model.user_login) %></div>
<div><%: Html.LabelFor(model => model.user_login) %></div>
[code]...
I think the title says it all, but to be clear:
If I put something like:
<%=Model.Project.Id %>
in the body of a strongly typed view, I get full intellisense for my model.
However, if I put:
<a href="/Projects/Edit/<%=Model.Project.Id %>">
With the script being written within an html property (in this case the href="" property), the intellisense doesn't work.I imagine this is a limitation of VisualStudio, but it seems this is a very common task and should be able to work. Is there a fix for this? Does my version of VisualStudio have a problem?
So my question is more in relation to what people consider to be the best practice and why:
I've been dropping literals into pages and repeaters and binding them in code behind for a while. Is this considered bad practice?
ie:
ASPX Page:
<asp: Literal id="litTextToInsert" runat="Server" />
Code Behind:
litTextToInsert.Text = objData.MyText;
OR (repeater):
[code]....
I personally dont like doing this as i find it makes it harder for me to know if someone changed the field name, or mis typed it during development - the other way you won't know until the page loads.
With the strongly typed version if something changes in your DAL etc the build will break - letting me know I've messed up.
Why do so many people appear to use weakly typed code in ASP.Net (in examples, MVC, etc)?
Am i missing something?
Given the benefits of using strongly typed views to eliminate typed errors and the use of lambda expressions why would one use a dynamically typed view? When I use them I don't feel as safe as with strongly typed views. Am I missing something? Is there a special use for them?
View 2 Replieshow to fix "Method not found: 'Void System.Web.Mvc.ViewContext..ctor(System.Web.Mvc.ControllerContext, System.Web.Mvc.IView, System.Web.Mvc.ViewDataDictionary, System.Web.Mvc.TempDataDictionary)'." exception. This solution doesn't work http://dotnetslackers.com/articles/aspnet/installing-the-spark-view-engine-into-asp-net-mvc-2-preview-2.aspx.
View 3 RepliesI was going through the spark view engine documentation and found a lot of literals showing up in code for which I couldn't find any references. For e.g. ! , #, $ , !$ , ... What are these for? What do the combinations mean? When do they come into use? Am I missing any more literals that precede or comes after {
View 3 RepliesHow do you modify a ASP.NET MVC 2.0 project to work with the Spark View Engine?
I tried like described here:
[URL]
But somehow it still tries to route to .aspx files.
Here the code of my global.asax:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(.......
My error code:
string model = "Content";
Type stype = Type.GetType("mvc.Models." + model);
ViewPage<stype> vp = new ViewPage<stype>();
Of course it error when compiling, but it clearly show what i'm thinking.
I wish to do something like this:
return RedirectToAction<SomeController>(c => Index(someparameter));
How to do this ?
Been using MvcContrib for strongly typed redirects since MVC1. Aren't we there yet with MVC3 or did I miss something (just been scratching the surface)
View 5 RepliesI have an application that is going to allow a user to create records of type Customer and Seller that have one section in common, but other fields that are unique to their types.
Both of these types will have an address block for their create view.
If I have a strongly typed Customer or Seller view, how can I use the view partial (containing the address block) that I've created? I've tried creating a view model, but I don't know how to have the create page inherit the Customer model and the addressBlock partial inherit the addressBlockForm partial model...
What is meant by "strongly typed view data" in Asp.Net MVC ?
View 3 RepliesLong story short, I'm trying to add a few extra items to ViewData to make my life easier, and its an edge case that doesn't really justify its own model just for this one case. Keep reading for more specific details.
So I have a strongly typed edit view for one of my objects, everything works great until I try to put a dropdownlist on the view with an ID that does not match a property of my class.
I have this
[code]....
My expectation is that in the controller action that accepts the POST, I will manually use the FormCollection[] to read out that ID and populate MyOtherModel with the correct ID.