Informing The Client / View Of Exceptions Caught By The Controller?
Dec 18, 2010
I have basic client-side validation working in my MVC3 RC2 application, but I'm now interested in recommended practices for conveying server side validation errors, as well as server side exceptions, to the client. I know I can add properties to my view model and display these if populated, but I don't want to reinvent the wheel, and I would like to tie in with MVC's way of doing things. So, how should I, a) notify the user of server side validation errors, and, b) notify the user of server side exceptions, e.g.
I know there are a few posts on this issue already, however I haven't found the answers I was really looking for.
My situation is like this: I have a DLL project containing my business logic. Then I have a web application that refers to this DLL, and calls a function from it. And I have a global.asax which handles errors on Application_Error
What's the best way to handle exceptions that happen from within a controller's constructor?
All I can think of to do is use Application_OnError() or put a try/catch in my ControllerFactory.
Neither of these solutions seem ideal. Application_OnError is to broad - I have some non-mvc content in the site that has its own error handling. Using a try/catch block seems kinda hacky.
If I'm serving different content type -html/text/json/rss.... I would like to be able to handle the exception from within the action method instead of having to write all kinds of conditions to determine what kind of error message to serve.
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?
I've been developing a web application (C#) that has to send an e-mail to around 10 users, how ever, when the user clicks the button is like nothing happened cause the server is processing the e-mails. After the emails have been sent the site is redirected to another page that I have set up, but it takes about 10 seconds until it happens, that way the user will think that the system is frozzen.I'd like to know how do I do to after the user click the Submit button show an advice. I was thinking about put a label, and after the click, the text would change to "Sending the emails", however, I'm making a loop to send the emails, and I believe that if I put the code changing the text before the loop I'll get nothing, once the page will refresh after the loop's execution, am I right
I'm building the standard 3-tier ASP.NET web application but I'm struggling as to where to do certain things - specifically handling exceptions.
I've tried to have a look around on the web for some examples but can't find any which go as far as a whole project showing how everything links together.
In my data-tier I'm connecting to SQL Server and doing some stuff. I know I need to catch exceptions that could be raised as a result but I'm not sure where to do it.
From what I've read I should be doing it in the UI tier but in that case I'm not sure how to ensure that the connection to the database is closed. Is anyone able to clarify how to do this? Also if anyone knows as to where I could find an example 3-tier web application that follows best practices that would be great too.
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)?
We have a asp.net application and want to implement logging. The first idea was to use the Application_Error method in the global.asax file.
The problem is that ASP.NET very often seem to throw exceptions internally that are not caused by the application and which seem not to interfer with the users normal workflow. For example we often get HTTPExceptions, UnauthorizedAccessExceptions and others caught in this method, although there is no real error in the application.
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.
I'm a newbie and I tried finding a solution of this error message:
"The model item passed into the dictionary is of type 'NerdDinner.Controllers.DinnerFormViewModel', but this dictionary requires a model item of type 'NerdDinner.Models.Dinner'"
There are similiar problem error but not the same context problem. I believe that the problem is located in the edit.aspx and still i can't solve it.
I have the following code and wanted to know how to use the ActionLink par to to a page with a seperate controller/view and pass the Mode.ProjectId into this other controller/view.
"The model item passed into the dictionary is of type 'NerdDinner.Controllers.DinnerFormViewModel', but this dictionary requires a model item of type 'NerdDinner.Models.Dinner'"
There are similiar problem error but not the same context problem. I believe that the problem is located in the edit.aspx and still i can't solve it.
I want to stop a windows service by clicking a button, but my boss is asking me to do this in MVC. I know the code of stopping and restarting the window service, but when I am trying to do this in MVC, I get an error. I created two buttons on my View page
[Code]....
In my controller, I defined the methods for each button
[Code]....
I have a class
[Code]....
when I run the web site and I enter something on the tesxt box and press the restart service button, I get the error resource is not found
Requested URL: /Post/Action
and the URL changes too. How can I configure so that I can get the name that I typed in my text box to my controller.
I am new to MVC. Now I have an application needs to be built using MVC. I want to show all the information in one view(or form), but the data are coming from different controllers. how the system knows the data in textbox1 goes to controller1 and the data from database in controller2 returns to textbox2 in the same view(or form)?
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
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(); } }