JavaScript Parameters Coming From View's Model Data?
Jul 29, 2010
I've seen/read plenty advocating "unobtrusive" JavaScript contained in separate files. I'm preparing to combine all my JavaScript from three partial views into a single file that I will then reference somewhere in my master.
My question is: is there any type of JavaScript that should remain behind in the html? One example that seems to me may present a problem would be something like:
Am I correct in assuming this script would not work if loaded from a separate file?I mostly wanted to check if there were any caveats or other considerations prior to combining everything into this lone, separate file.
I just struck upon a prime opportunity to further exhibit my MVC ignorance, by way of the following: How can one make use of a custom view model class that has parameters in the constructor? For example, a class that could intitialize various collections/properties based on an IPrincipal object passed in. I've come across several allusions to this scenario, involving a class inheriting DefaultModelBinder which overrides the CreateModel method, but have yet to find an example.
i just noticed that if my controller has a parameter with a name that matches the name of a field in my view model, and the view emits the value of the model's field, the value emitted is that passed in the query string, not the one set by the controller. is this by design?
here is what i mean:
my view model:
public class MyViewModel { int id; string name; [code]....
sending a request to "create?id=1234" emits "1234" in the hidden field instead of "1".
I've been used to decorating data model classes with data annotation attributes, but the purist in me baulks slightly at including purely presentational attributes such as display format here. I am, however, quite happy to keep validation centric attributes here. One good reason I have to continue keeping all annotations etc. in the data model is that my view model aggregates data model classes, e.g.
my ViewModelBase.DetailItem<TEntity> property in the view model is just a reference to an entity class in my data model. If I wanted to move presentational annotations to the view model, I would have to quite radically revise my design to one where I duplicate data model properties in my view model and use an object mapping tool to populate view model objects based on data model objects.
I think I need to drop in some escape characters, but I'm not quite sure where. Here is the javascript function I'm attempting to call:
function setData(associateValue, reviewDateValue) { var associate = document.getElementById("Associate"); var reviewDate = document.getElementById("ReviewDate"); associate.value = associateValue; reviewDate.value = reviewDateValue; }
Here is the asp .net mvc line where I'm attempting to create a Radio button with a click event that calls the above function and passes data from the model as javascript parameter values.
<%= Html.RadioButton("Selected", item.Selected, new { onClick="setData('<%=item.Associate%>','<%=item.ReviewDate%>' )" } )%>
The above throws a bunch of compile issues and doesn't work. A call such as the following does call the javascript, but doesn't get the data from the model.
i need to design the asp.net vb page where there will be checkboxlist , where user can check and press submit and the values will be passed throught the SP ..
here is my Code , which only accept one parameter at a time
[Code]....
I have already design the checkboxlist , the problem only accour when i select more than one parameters i got this errore message :
There is already an open DataReader associated with this Command which must be closed first.
My View has to present a form that shows Tenant Desc and Contact related fields. The index view works fine and shows the desired values.
But, the create view isn't working out. In the create view, i am planning to do -
1. creating a new contact entity instance and saving it in db
2. Then creating a new tenant entity instance using the new contact_id and save it to the DB.
However, the code doesn't seem to be inserting any value inside Contacts table. It inserts null value.Below is the code snippet of my Create Controller -
[HttpPost] public ActionResult Create(FormCollection collection) { var newContact = new Contact();[code]....
one thing that has been puzzling me since learning MVC2 is the following case scenario: I have a view which contains two latest news lists, a login form and a signup form. Every example I found on Views and View Models so far has a one-to-one example such as a simple login form etc. But how do I create a model that provides the properties and validation for a login and signup form and manages the data for the news lists. can I pass multiple models in the strongly typed view? When I created one model the form validation would fail as it expects all fields - login and signup to be filled. I am missing some advanced examples or information.
I need to get model data into a JavaScript variable and use it as an int to compare values. But I can only figure out how to get the model data as strings, otherwise the compiler complains.
So how can I get the max and taskBudgetHours as int variables in the Javascript?
Say I got a domain model as follows: (and my repository expect an instance of this object)
[Code]....
And a view model (which my views are based on)
[Code]....
At the moment I got it like this and have my controller action manually create a new Person object from the PersonModel object before passing it on to the repository, which does not feel right.
So I tried to have PersonModel inherit from Person and pass that to the repository (also tried casting the PersonModel to a Person object first), but that don't work out.
What's the right way to have PersonModel automatically cast to Person? I want to keep this logic as my current structure allow me to keep things really loosely coupled, with the repository layer not having a clue how it's being used.
have been unable to find any explanation of this anywhere.I have an .ascx partial view that's pulling data from a given model.I want to populate a drop-down list in my partial view using data from a table outside the model (it is in the same database and entity framework).I don't know the syntax (I'm pretty much just learning MVC2 and jquery), and don't even know where to start. I've gotten about as far as <% foreach step in [???] %>, but don't know what to do with it. What do I put in the "[???]"???
function validateComment(source, args) { var reComment = new RegExp("^[a-zA-Z0-9',!;?@#%*.s]{1,1000}$"); var validComment = reComment.test(window.event.srcElement.value); if (!validComment) alert("The comment has illegal characters"); args.IsValid = validComment; }
Upon clicking the button that triggers the validator, the application breaks and I can see that the window.event property is null, so obviously there's a null reference trying to match the regEx. My question is why could the window.event be showing up as null? I could've sworn this was working before.
EDIT:
I have modified the function as such:
var check = document.getElementById(source.id); var checky = check.attributes["controltovalidate"].value; var checkyo = document.getElementById(checky); var validHour = reOutHour.test(checkyo.value); if (!validHour) alert("The time is incorrectly formatted"); args.IsValid = validHour;
Now this is working on Internet Explorer, but not on Firefox...
So I've been handed an older website, and been asked to make some modifications. It's been made with ASP, and I'm not really familiar with it. [URL] I've been asked to get rid of that awful scrolling. By looking at the page source, I determined that the scrolling is done using some inline Javascript.
<script type="text/javascript"> function getElementPosition(theElement){ var posX = 0; var posY = 0; while(theElement != null){ posX += theElement.offsetLeft; posY += theElement.offsetTop; theElement = theElement.offsetParent; } return {x:posX, y:posY}; } var offsetY = 0; window.onload = function(){............................
I'm fairly new to all this, but have slowly been teaching myself C# and ASP.net MVC over the past year or so...I really tried to search for this, but haven't been able to find anything - it may be I'm using the wrong terminology!I'm using ASP.NET MVC2 with EF4 connected to a SQL Express db. Situation: Without getting into too much specifics, I have one table called 'Plan.' Under 'Plan' are several different categories that are related to a single Plan item [say Category A, Category B, Category C and Category D]. Each 'Category X' table has a beginDate, endDate and other details specific to that category.
I'd like to be able to create a summary page that combines all items from Category A, Category B, Category C, and Category D and sorts by beginDate - but only need a few of the columns [eg - begin/end date, name, id].
I have an entity object as model input in my view. Not sure if it's the best approach, but I use the object references to get values from a related object.Let's say I've got a car entity and a manufacturer entity.Here's how it would look in my view
[Code]....
I've get a nullreferenceexception where the car entitity does not have a reference towards manufacturer. I'd like to output a " " if no manufacturer exists.
've created a Search partial view and it works, except for my view model. What i mean is, the partial view sends a string to my ActionResult Method, but only a string, that is not related to the view model that the partial view is built in. If i tell my ActionResult method to receive the view model in which the partial view is built in, it always tells me that i have null values. Here's my code This is my partial view:
[Code]....
Now here is my Model in my MoviesSearch view model:
I have one view page (MyView.aspx) and many data sources to bind on this page. Lets say it has Books, Publishers, Comments, etc. Each one of those has an object which provides a List, List, etc. In my view, what are my optiosn for multilple model biding? I want to check to see if each one is empty, and then enumerate it. But I can't check Model.Count() because wouldn't Model be made of all those objects if I set the page to inheriet from? What are my options? Should I load each content area in a control/partial view? Or can I just dump each object into ViewData and then check the count by casting in the view?
making my first steps with asp.net mvc and I actually create a (very) small website.I have 1 controller : TasksController1 view : Tasks/Index.aspx1 Partial View : Tasks/AvailableSorting.ascx In my controller I have 2 methods :
[Code]....
In my Tasks/Index.aspx, I add my partial view (<% Html.RenderPartial("AvaliableSorting"); %>)
That sounds simple. But, It just doesn't work : the Index return a list of Task and the parial view (should) return a list of string.The index.aspx works perfectly, but the partial view doesn't get the right model ! he gets the model of the Index page (list of Task).
I would like to add a partial view to my view page
The view page contain a mode name "<IEnumerable<JvTake1.Models.VortN>>
And the partial view contain a model name "<IEnumerable<JvTake1.Models.VideoL>>" So, theoretically I think they were suppose to work together but no Can any one guide me how to make it happen?