I am learning MVC using the v2 release with Entity Framework v4. Let's say I have 3 objects Game, Points and Players. They are related in the following manner:Game has points and the Points can have a player associated with them ( 1 Game to many Points and a Point object can have one Player).
I am attempting to use the EditTemplates feature in MVC2 to render my views. In my Game Edit view I want to have the basic Game object information editable, and also the related Points objects. Currently I am utilizing "`<%= Html.EditorForModel() %>`"(Which seems pretty slow) to render the Edit View and then I have a specific Game and Point EditTemplates.
The data renders correctly and is editable for both the Game and Point information. When I go to perform the update and submit the form I receive the "Game" object in my Update ActionResult. The basic properties are populated for the Game object but any deep properties such as Points are not; they appear as null. If I look at the Request.Form variables in debug I can see the Points fields are being passed to the server but do not place themselves back into the Game object.
In my Game EditTemplate I am using the following to render the Points objects:
<%= Html.EditorFor(c => c.Points) %>
My Points EditTemplate looks like: [code]...
why this is rendering as "Points.Points[index] instead of Points[index]? I tried messing with the parameters in the EditFor:
I am building a page with databound list control. For each row I want to display piece of info retrieved from web service call. This could be time demanding so I want to render page first and retrieved additional info asynchronously and in parallel later on. Anyone has some tips how to make it? Just to have a more detailed picture it is a product list in e-shop which I want to render so customers can use it (go to product detail/add goods to shopping cart...) but meantime there will be a placeholder displaying info that informations are retrieving which after completion of call will be replaced by result data.
So I have two nested view models, CreditCard -> BillAddress. I have a view, "EditBilling", that has EditorFor(CreditCard). The CreditCard EditorTemplate has EditorFor(BillAddress), and the BillAddress EditorTemplate has EditorFor(BillState).
The end result is a select list with id "CreditCard_BillAddress_BillState".
I need to reference this in javascript, thus need to know the ID. In other situations, with non-nested ViewModels, I have used the following code:
The problem here is that the ModelMetadata.PropertyName property is only aware of the current property, not the parent(s). So I end up with the following:
$('#BillAddress_BillState')
How does one go about getting the client ID of nested strongly typed helpers?
The lack of an EditorFor file in asp.net mvc 3 seems like such a glaring omission I wonder: Is there some way that mvc handles file uploads that is just not publicized that well? As near as I can tell there is no built in way to handle file uploads.I'm just curious if the file upload capability is in fact there and I'm just missing it, or if it does not exist at all.
I've been trying to something with the templating system in MVC2, but what I thought should be simple has not been successful. So now I question if it's possible or if I'm missing anything obvious. The scenario:
I have a base template as a strongly typed view that is set up in the ViewsSharedEditorTemplates folder...call it CommonItem.ascx. It wants a model item of type MyItemType.
I have a template that is a wrapper around the previous template, is also strongly typed of type MyItemType, residing in the same folder. Call this one CommonItemWrapper.ascx.The contents of CommonItemWrapper.ascx includes divs before/after a declaration Html.EditorForModel("CommonItem").
My expectation would be that the inner template (CommonItem) would be displayed within the outer template. Unfortunately the inner template never gets evaluated.
Am I missing something? Am I mistaken in thinking that templates can be nested in this manner? If so, is there another means to accomplish this?
I am generating the controls for an MVC Create Form using html.editorfor().How can i add style properties to whatever is created? For instance i have a control which is generated by html.editorfor() as a single line textbox but i want it to be a multiline textbox.
I would like to exclude one of model's property from the Html.EditorFor. I tried [HiddenInput(DisplayValue=false)] but it renders the property as an hidden input. This could potentially be a security problem. How can we completely exclude a field from Html.EditorFor?
I'm trying to do this: Editing a variable length list, ASP.NET MVC 2-style
In the post he mentions that it could be done with less code using Html.EditorFor(), but that it would be more difficult because of the indexes. Well, that's exactly what I want to do, and I don't know where to begin.
Update 1: Instead of generating a GUID for each item in the collection, I'd like to generate incremental indexes starting with 0. Right now the field names look like "gifts[GUID].value"; I would like them to be "gifts[0].value","gifts1.value" etc. but I don't understand how the collection keeps track and generates these indices.
I'm trying to add a `Class` to the `EditorFor` Helper inside an `EditorTemplate`.
The problem is that because I'm using Unobtrusive Validation, the input element already has classes assigned to it.
Here is my EditorTemplate
[Code]....
And here is the output <input class="text-box single-line" id="BirthDate" name="BirthDate" type="text" value="08/08/1980" />
You can see here that the `datepicker` class has not been added, yet the "value" has been properly formatted.
Basically I can see that the `EditorTemplate` is working, but the `Class` is not being appended to the rest of the classes on the `<input>` element. Do any of you know how to fix this?
Generally speaking we create a custom view for each page. So for an edit view of a car the model might be:
Car CarToEdit{ get; set;} List<SelectListItem> CarManufacturers{ get; set;}
This has the advantage of giving a strongly typed view. It doesn't decouple the data layer well, but that is a separate issue. I'd then need to do something like (very approx syntax) :
Because of this, I can't use an EditorFor, and just pass in the model, as it would not render out the dropdownlists. So I think why not annotate the manufacturer field with UIHInt... great that works. ... but how do I pass in the data (both the manufacturerId, and the List<SelectListItem> to the hinted field?One solution is to have the UIHint control do a RenderAction. So the main view would include a line like:
[Code]....
Which would in turn go and render a view :
[Code]....
This works, but seems a little long winded. Can anyone suggest better ways of achieving this?Is anyone actually using UIHint?Also it would be good to be able to cache the output from the partial view (the dropdownlist) which is called from the RenderAction method... but output caches are is basically ignored on a render action (unless I've missed the point here).
I'm finding my self with the problem that if I do not show the Template for a "complex" object I have in the main view object I still get the errors in the summary. How do i get around this?
I've got a model with say:
->Persons (has its own editor template) ->Pets(has its own editor template)
In the create view I show each one depending if they are not null. But when I try to validate HouseType and say I have Persons not null and pets is null. I get errors of validation for pets.
I have a little MVC 3 challenge that I am trying to overcome.Here is my scenario:I have a controller called PersonController.cs with 5 methods:Add Add (post) Edit Edit (post) PopulateName(string EmailAddress) - POST
I have a viewdata class called PersonViewData.cs with 3 pieces of data:
Email FirstName LastName
I have 2 PageViews (Edit.aspx and Add.aspx)I have 1 PartialView (Details.ascx) - with 3 textboxes (Name, Email, Phone)I want to reuse this partial view in both the Edit.aspx and Add.aspx Views.
The user should NOT enter the First Name/Last Name - rather, once the user has entered the email address (OnChange of Email textbox), the First Name/ Last Name of person should be populated. This is done using the PopulateName(string EmailAddress) controller method. Meaning, I have an AJAX Form inside the partial view
Then once all 3 fields are populated. The user should be able to submit either the Add or Edit HtmlForm.
Code of Edit.aspx: [Code]....
Code of Add.aspx: [Code]....
The main issue is as follows:I have an AJAX Form inside the partial view. Since now we have a PageView Form and nested PartialView AjaxForm - Form within a Form - the Browser has a hard time with this concept. In fact, when a person enters an email address, the frmEdit/frmAdd gets submitted.
i need to show project information by value of dropdownlist.by using this code i get a list of data to drop down list.now how can i access the first data in ViewData(or record)
Does anyone have any idea why the code below doesn't give me any value but instead gives me "System.Web.Mvc.SelectListItem"? If I don't do a foreach but instead substitute the ViewData with this
<%= Html.DropDownList("PersonOnCallCheckBoxList") %>, I get the correct value. foreach (var person in ViewData["Person"] as IEnumerable) { %> <input type="checkbox" value="<%= person %>" /><%= person %><br /> <% }
I'm new to .Net development, and now are following NerdDinner tutorial. Just wondering if any of you would be able to tell me What is the differences between ViewData and ViewModel(all I know is they are used to pass some form of data from controller to view) and perhaps tell me on what situation should I use ViewData instead of ViewModel and vice versa
This ActionResult is executed multiple time accoording the number user selected from previous page..each and every student id and StudentType is passed by that view to this ActionResult. my question is there any way that in ViewData we can store all these id's and studentType's so that I can use these id' and StudentType's in other ActionResult? bec I need only these two things in other ActionResult? I can implement this using cache but I dont want to do with that.
tempdata variables works like a session variables?
basically i want to do is to when the form loads for the first time the variables should be empty. but the variable should be persisted until i am on that form.
the form contains searching with a submit button as well as the paging . basically my ques is to use what approach should i use?
My doubt is i have two tables with Id as (Primary key) in one table and in the next table i have a Category Id field as Foreign key relationship with the 1st tabl Id field...
I have created a create view for the 1st table.My question is i have created a partial view for the 2nd table,but i need to pass the Id value to the second tables category Id field...So is there any way to do it by using Viewdata?