MVC :: Debugging Controller / View Data Flow
Feb 23, 2010
I've started using ASP.NET MVC on a project and have gotten a few working pages, but I recently ran into a problem where data I was carrying through a hidden field didn't carry for some reason. I can think of a couple of possible reasons and I could try things until something works but I prefer to work on observable empirical data. Thus the point of this inquiry.
I've got a controller (several), a model (several), a view (several), and data in the browser for the JavaScript to chew on. I can unit test my JavaScript code. The browser / view interactions go over the wire, and I can capture that either with Firebug or (if I want to punish myself) Ethereal. I can write unit tests for the controller and for components of the model. The thing that appears to happen in a pure "black box" is the mapping between the model objects and the view form fields. Somewhere in that process, it tries to map data from form fields into model objects before it hands a request to the controller and it tries to map data from the model objects to form fields when it processes the response. Even with the helpers in play, this is a source of bugs. There can be spelling disconnects, or a page might be inadvertently missing one of the fields of a model object because it didn't use it. It would be nice to know if a field didn't map and why.
Since it is happening on the server, this seems like the handoffs should be unit testable or at least loggable. The problem seems pretty bounded. I can't be the first person to have run into this question. Are there any hooks I can use for this? What are the best observation points in the framework to tap the process, both incoming and outgoing?
View 2 Replies
Similar Messages:
Jan 27, 2010
Can i create a partial view and a controller that will feed data to the view, and if i render that partial in a Master page, the Data will show on whatever URL i am?
Or is there another way of showing content from database on every page(view)?
View 2 Replies
Aug 16, 2010
I have a simple model where a Person has Gifts. I have a view which is a list of Gifts belonging to one Person.
My problem is with the Create action for a new Gift. I want it to default to the PersonID that we are already viewing the list of Gifts for. I tried simply passing the last PersonID (they are all the same)
Html.ActionLink("Create New", "Create", new { id = Model.Last().PersonID }) which works fine if there is already at least one Gift for that person but if this is the first Gift I don't have a value.
My Gift List controller knows the PersonID I want to pass but the view doesn't.
How do I pass this PersonID from my Gift List controller to my Gift Create controller via the Gift List view? Or is there a better way to do this?
View 2 Replies
Jan 18, 2011
I have a website. there's master page with a menu implemented as a partial view Menu.ascx. This menu is a list of available categories which can be choosen. There's a separate controller for this view. the controller just gets all available categories from database and passes to the view as a list. here's the view's code
[Code]....
and controller for this view
[Code]....
there's other controller which is responsible to retrieve data for content page when one of categories is seletced.
[Code]....
So, i want somehow to get the current category in Menu.ascx.
View 3 Replies
Mar 24, 2010
I'm a php programmer (code igniter) but interested in learning ASP.net MVC, I have a few question regarding this new exciting framework In php codeigniter's controller I can easily catch a post variable using
[Code]....
In comparison in ASP.net MVC we can create an action method that will accept post variable (but the parameter can get very crowded if we're passing a lot)
[Code]....
Or using FormCollection
[Code]....
Is there a way to catch post variable in ASP.net that looks like php's codeigniter? I mean not by adding the parameter, because I wanted a controller method that is flexible in receiving post request A controller that can accept and process any post request like in php (where we don't have to put that parameter to the controller method, we just call them
[Code]....
View 3 Replies
Nov 16, 2010
I have setup an httppost that sends a string into my controller, searches for some results using linq, and then sends the results to a view. In debug stepping through the code I can see the data that I am looking for being passed into the return view statement, but the page just appears to refresh (it doesn't render the view as expected with the result). why my controller fails to redender the view? (note: I didn't include the view because I can send a ToList() to it without an issue. For example, return View(_entities.Persons.ToList());
[HttpPost]
public ActionResult RenderSearch(string usersearchtext)
{
if (usersearchtext != null)
{
var search_results = from s in _entities.Persons
where s.Description.Contains(usersearchtext)
select s;
return View("SearchResult", search_results.ToList());
}
else
{
throw new NotImplementedException();
}
}
View 8 Replies
Jan 19, 2011
So I have a dropdown in a form which when at item is selected postback to database and get some values which I am now storing in an object. I need to get the values from this object into textboxes on the form in the view..how can I do this???
View 2 Replies
Apr 22, 2010
I have a dictionary I'm passing to a View. I want to be able to pass the values of that dictionary back to a Controller action from this same View. Is there anyway this can be accomplished without using a form? The situation is that I need to be able to pass these back to a controller action that is called when a user clicks an ActionLink from the View, and in my experience an ActionLink cannot be used to submit a values of a form, i.e. I've only been able to submit values of a form using the form's submit button. Unless there's a way to use an ActionLink to submit values in a form.Controller Action passes Dictionary to Controller in ViewData:
public ActionResult ModifyNewCrossListing(FormCollection form)
{
Dictionary<int, string> prefixlist = new Dictionary<int, String>();
[code]...
View 1 Replies
Jul 14, 2010
I have a table with a ID, CodeID,LibelleID field. I am using oracle connection. i want to display in a drop downlist (textfield) CodeID+LibelleID for exemple "100-SalaryBase" where CodeID=100 and LibelleID="SalaryBase" is it possible to obtain it if the user selects an element from the dropdownlist how to post both the codeID and ID to the controller
View 4 Replies
Jan 13, 2011
Im having trouble with posting data from a view that also contains a partialview. Im using a viewmodel that has 2 objects in it. The data that comes from the view is correct and fine, but the data that im trying to get from the partialview is null, or rather the object is null. The partialview doesnt contain that much, the user can check/uncheck some checkboxes and thats it. Heres how the partialview looks like
[Code]....
And heres the View
[Code]....
View 3 Replies
Sep 23, 2010
I have following situation - I am pasing user info object from Controller to View. It contains GUID UserID, which i dont want to be seen on page. So I removed every Html.LabelFor(model => model.UserID), Html.TextBoxFor(model => model.UserID) etc... from generated View source. And because of this when Html.BeginForm() returns that object back to Controller all values is there but UserID is lost??
If I leave Html.LabelFor(model => model.UserID), Html.TextBoxFor(model => model.UserID) etc.. in View everything is fine. But I dont want to show UserID? Where is the problem here?
<%= Html.LabelFor(model => model.C__User_Id) %>
View 6 Replies
Sep 28, 2010
MVC basics or looks like I am doing something terribly wrong, but have not slightly idea what is it? Want to delete user from MVC Framework's Built in Security Module. So first I define Delete() in AccountController:
[Code]....
and this works fine. Second: I added view (for delete) DeleteUser.aspx
<h3>Are you sure you want to delete this?</h3>
<fieldset>
<legend>Fields</legend>
<div class="display-label">UserId</div>
<div class="display-field"><%= Html.Encode(Model.UserId) %></div>
<div class="display-label">UserName</div>
<div class="display-field"><%= Html.Encode(Model.UserName) %></div>
<div class="display-label">LoweredUserName</div>
<div class="display-field"><%= Html.Encode(Model.LoweredUserName) %></div>
.... etc
And this works fine.
And then finaly when I submit this values for delete, and run back to the Controller and DeleteUser:
[Authorize]
[HttpPost]
public ActionResult DeleteUser(aspnet_Users inUser)
{
...
It is a problem. Not a single value from View are pased?? For example:
inUser.UserName is null,
inUser.UserId 00000000-0000-0000-0000-000000000000,
... etc.
All values form view are losted? Why and how this can be?
View 4 Replies
Dec 13, 2010
I am trying to pass a view model of mine, which has multiple list in it, to my view. Then in my view i need to edit the different list. Then on my post i need to save the edits. Although, when i pass my viewmodel back to my post, it is empty! Can somebody explain what i am doing wrong? Controller
[Code]....
here is my View
[Code]....
NewsViewModel
[Code]....
View 2 Replies
Mar 25, 2011
what's a recommended way to page data to a view from a controller into a table?
View 6 Replies
Oct 8, 2010
How Can I Pass data(not the part of model) to Controller from View? View Code
[Code]....
View 4 Replies
Apr 29, 2010
I am getting started with Ap.net MVC. For that i chose to practice it by build an application. Im using MVC 2 and Linq To SQL, and i would like to passing another Query to the view. For example, i have this:
[Code]....
So i would like to pass data1 and data2 to the View. I can use return View(data1), but the View function accept just one data. So what technique i can use to pass the tow data to the view
View 5 Replies
Mar 4, 2011
I have the following to get the Json abject passed from the controller and populate the various textboxes in the view. However, nothing is happening even though controller is passing a valid Json object. What is wrong with this code?
<script language="javascript" type="text/javascript">
$(document).ready(function() {
var url = '<%=Url.Action("DropDownChange") %>';
$("#vendorID").change(function() {
var selectedID = $(this).val();
if (selectedID != "New Vendor Id") {
//$.post('Url.Action("DropDownChange","Refunds")', function(result) {
$.post(url, { dropdownValue: selectedID }, function(result) {
alert(selectedID);
$("#name").val(result.Name);
$("#city").val(result.City);
$("#contact").val(result.Contact);
$("#address2").val(result.Address2);
$("#address1").val(result.Address1);
$("#state").val(result.State);
$("#zip").val(result.Zip);
});
}
});
});
This is the code in my controller;
public JsonResult DropDownChange(string dropdownValue)
// This action method gets called via an ajax request
{
if (dropdownValue != null && Request.IsAjaxRequest() == true)
{
paymentApplicationRefund =
cPaymentRepository.PayableEntity(dropdownValue);
paymentApplicationRefund.Address1.Trim();
paymentApplicationRefund.Address2.Trim();
paymentApplicationRefund.Name.Trim();
paymentApplicationRefund.City.Trim();
paymentApplicationRefund.Contact.Trim();
paymentApplicationRefund.State.Trim();
paymentApplicationRefund.Zip.Trim();
return Json(paymentApplicationRefund,"application/json");
}
else
{
return null;
}
}
View 3 Replies
Feb 17, 2010
quick question: I have a view on my HomeController which is used to create a new 'model'. This view posts to a different controller to keep things tidy. The problem I am having is when I enter invalid details into the form, the rules I specified never seem to make it back to the original view and thus my validation messages or summary never get populated. Is there a way around this because I am using a view model with two IEnumerable lists in it.
View 5 Replies
Aug 6, 2010
I've got problem with my app .
I've got such classes (this is some kind of tree structure):
[Code]....
[Code]....
in Index() action i've got this piece of code
[Code]....
[Code]....
View 2 Replies
Mar 3, 2011
I'm gonna create profile page for my site. This page includes some 'Partial View' and each part posts some data.
My question is: How can I get posted data (strongly typed) from each partial view separately? Something like this:
[HttpPost]
public ActionResult Home(Model1 model1, Model2 model2, ...)
{
return View();
}
View 4 Replies
Mar 24, 2010
Well i am a sort of a beginner..
I am writing an Application using mvc and c#..
Well i have a View where i have the following code..
[Code]....
View 1 Replies
Jun 17, 2010
if I use a Html.Hidden field in my view, when the value click to submit the form I would like to pass this data to the controller. This variable would contain int as key and string as value,
Dictionary<int, string> interestTable = new Dictionary<int, string>();
How can I specify the htmlAttribute fo this variable in my Html.Hidden code?
<% using(Html.BeginForm("Search", "SearchMembers")) { %>
<input type="hidden" name="ResearchInterests" id="researchInterests" value=""/>
<%= Html.Hidden("fullInterestsPath") %>,
View 5 Replies
Mar 8, 2011
I am using Entity Frameowrk as the ORM. I am new to MVC and trying to develop a samll module as a learning project.
Now I am stuck with an issue for which I can't seem to find out answer on web. The issue is :
I have two tables mapped as entities - Tenant_Definition and Contact
Tenant_Definition { Tenant_ID , Desc, Contact_ID}
Contact {Contact_ID, Company_Name,Company_Address,Person_Name, Person_Phone_Mobile}
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]....
View 6 Replies
Apr 15, 2014
how can we pass data from view to controller in Asp.net mvc
View 1 Replies
May 5, 2010
as a php developer ive been told to go the MVC route which ive been trying since yesterday. Im using visual web delveloper 2010 express and im using the MVC template project.Ive basically got a news table in MSSQL Express, in there are these fields ID,(Title,Body,PostedOn,PostedBy) all i wanna do is loop through them to put them on the view.Im after a nudge in the right direction, I want to be able to do a SQL lookup in the controller put that data in a DataTable then run a foreach loop on the table to display this on the view. The problem im getting is I know youre not suppsed to put any HTML in the controller and I cant pass the datatable to the view to do the loop in the view.. so where/how do I do the loop.
View 2 Replies