MVC: Return Different Views Depending On Object Type?
Jan 3, 2011
my controller, I'm generically deserializing Xml. The object being deserialized to could end up being any number of different types. This, of course, won't be known at compile time. I've created a number of partial views, each of which are strongly typed to a different object that is a possible outcome of the Xml deserializaton.My problem is that I'm struggling with a good way to return the right view. I could always switch on some property in the object, or use a Key/ViewName Dictionary mapping to get the right view name, but I was hoping for something a little more generic than that.Does anyone know of a way that I could implicitly say, "return the view that is typed off of the object I have."?
View 1 Replies
Similar Messages:
Jan 3, 2010
I just hit the following issue: I am calling a web service that returns a serialized JSON object let's say: __type, FirstName, LastName (.net object Person with properties FirstName and LastName). __type's value is Test.Person
I have created a JS object using Type.registerNameSpace/registerClass called Demo.Person and it is registered on the page using the ScriptManager. Everything is working fine; I am able to get data from the server on the call back.
Is it possible to make the returned object from the web service be an instance of the declared JavaScript Demo.Person class? The idea would be to call a method like result.getFullName() on the client side without having to copy all the properties. This is just a simple scenario for more complex objects.
View 3 Replies
Jan 13, 2011
I have two views which will both use the same Controller method:
//webServiceController.cs
//The actual method is about 40 lines of code. Truncated for readability.
public ActionResult Index()
{
object i = new List<WebServiceMethod>(); [code].....
The second view is a quick'n'dirty conversion to JSON so that I can do magical AJAX tricks with the data:
<%
// AjaxGetServiceData.aspx
// Convert web service response object into JSON for AJAX.
var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
Response.Write(jss.Serialize(Model));
%>
I'd created a duplicate of the Index() method and called it AjaxGetServiceData(), but that defeats the purpose of MVC.
Resolution:I didn't ask my question very well, as evidenced by a 5-10 minute discussion I just had with a coworker about this very topic. He kept asking me the same question that many users on this page asked me: "How does the controller know which view to return?" I responded, "That's what I'm trying to figure out." I was trying to get the method to return a different view (or Json output) when AJAX was the requester. A string argument in the method was my solution.
This is what I ended up using to get my desired effect:
public ActionResult Index(string isJSON = "no")
{
/// ...All the code from before...[code]....
Then, when I want the JSON version, in my AJAX request I specify the URL as /MyController/Index/?isJSON=yes When I want my pretty table view, I just use /MyController/
View 2 Replies
Mar 20, 2011
If I have a controller and I want to return a view based on what my conditional logic goes to, is that possible? I have different types of models that i want to insert into a view DEPENDING on my conditional logic (if statements) Can i do this? and how would I do this
View 2 Replies
Jan 22, 2010
Can my WebMethod return an XmlDocument as return type?
When I try to consume the web service I'm still not getting XML. It appears as though a reference to the method is being returned rather than say a string containing XML.
<WebMethod()> _
Public Function CustomerSearch(ByVal lastName As String, ByVal firstName As String, ByVal companyName As String, ByVal city As String, ByVal state As String, ByVal email As String) As XmlDocument
' Create XML doc
Dim doc As XmlDocument = New XmlDocument()
' some more code
Return doc
End Function
View 4 Replies
Jul 9, 2010
I have an application that has an public 'end user' mode and a 'back office' mode. Both 'modes' pretty much share the same controller logic but the user interfaces for these different 'modes' are radically different. Using the out of box default routing that you get when a project is created for the first time I have something like the following:
Controllers
HomeController.cs
Views
BackOffice
Index.aspx
Public
Index.aspx
Shared
BackOfficeSite.Master
PublicSite.Master
In my HomeController.cs I have logic that looks like this:
public ActionResult Index()
{
var devices = DeviceRepository.FindDevicesByCustomer(100);
if(IsBackOffice())
{
return View(@"~/Views/BackOffice/Index.aspx", devices);
}
return View(@"~/Views/Public/Index.aspx", devices);
}
Is this the correct way to be doing this or am I digging myself an anti-pattern hole? I'm using ASP.NET MVC 2.
View 3 Replies
Mar 25, 2010
I need to make a webservice in .net (I know how this works) but then I need to get data out of a database. But my company wants to make it in a way that you can use the system with multiple databases.
So my option was make multiple abstract classes which contains the folowing code (depending on the database type, this would be a SQL database)
public abstract class AbstractDAO<T, Tid>
View 5 Replies
Jun 11, 2010
Iam building a website and i need to store somehow some informations that i will use in the whole site depending of the user type logged in.
Example:
1) User XPTO logs in
2) Query DataBase to see where he belongs
3) Store those 2 or 3 fields that i will get in Database in a persistent way to use it in the whole site.
Whats the best practices to do this?
View 4 Replies
Jun 11, 2010
I´m building a website and i need to store somehow some informations that i will use in the whole site depending of the user type logged in.3) Store those 2 or 3 fields that i will get in Database in a persistent way to use it in the whole site.My question is: Whats the best practices to do this?
View 1 Replies
Jan 20, 2010
I'm currently using a GridView and I want to set the CssClass for the Row depending on a property of the object that the row is being bound to.
I tried the following but it does not work (see comments):
[code]...
Now I could simply handle the GridView's RowDataBound event and change the css class of the row there...but I'm trying to keep a clear separation between the UI and the page/business logic layers.
View 2 Replies
Sep 14, 2010
how to query return all data in Array Object ,Hash Table ,And DataTable dataRow
View 4 Replies
Apr 12, 2010
i am receiving the follwing error when i am invoking a custom object "Object of type 'customObject' cannot be converted to type 'customObject'." Following is the scenario when i am getting the error i am invoking a method in a dll dynamically. Load an assembly
CreateInstance.... calling MethodInfo.Invoke() passing int, string as a parameter for my method is working fine => No exceptions are thrown. But if I try and pass a one of my own custom class objects as a parameter, then I get an ArgumentException exception, and it is not either an ArgumentOutOfRangeException or ArgumentNullException. "Object of type 'customObject' cannot be converted to type 'customObject'."....................
View 2 Replies
Dec 17, 2010
I have built a dataset named Transaction_Time.I called it on Page_Load
Transaction_Time tranTme = new Transaction_Time();
put it in the session.
Session["Transaction"] = tranTme;
Then I call that session and cast to dataset.
DataSet dstTranTime = (DataSet)Session["Transaction"];
I got the following error.Unable to cast object of type 'Transaction_Time' to type 'System.Data.DataSet'.
[InvalidCastException: Unable to cast object of type 'Transaction_Time' to type 'System.Data.DataSet'.]
Transaction_Time.Page_Load(Object sender, EventArgs e) in c:InetpubwwwrootWilliam29_11_2010Transaction_Time.aspx.cs:47
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
It is OK for some other pages. But for some page, it doesn't.
View 2 Replies
Mar 24, 2010
i am using this code for send data to view
[Code]....
Controller e 'System.Collections.Generic.IEnumerable [Code]....
by this code i am render view
[Code]....
after run the application i got this error
Unable to cast object of type 'System.String' to type 'System.Collections.Generic.IEnumerable`1[BentaAccounting.Models.Repository.AllData]'.
View 5 Replies
Oct 14, 2010
I have an asp.net web site where I'm trying to resolve what looks like a problem with ASP.NET AJAX:
Microsoft JScript runtime error:
Sys.ArgumentTypeException: Object of
type
'Sys.Extended.UI.AccordionBehavior'
cannot be converted to type
'Sys.UI.Behavior'. Parameter name:
instance
I've googled around a lot, and looked at the code presented (see below, no idea what it means) but no luck.
I've tried changing scriptmanger scriptmode to release, and a bunch of other things too.
Details:
Visual Studio 2010
ASP.NET 4.0
Ajax control toolkit 4.0
jQuery 1.4.2
jQuery UI 1.8.5
JS Code the error occurs in, inside ScriptResource.axd:
dispose:function()
{
var c=this;
b.UI.Behavior.callBaseMethod(c,eb); --------- this line
var d=c._element;
if(d)
{
var f=c.get_name();
if(f)
d[f]=a;
var e=d._behaviors;
Array.remove(e,c);
if(!e.length)
d._behaviors=a;
delete c._element
}
}
Declaration of accordion control:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="atlas" %>
(snip)
<atlas:Accordion ID="menu" runat="server" SelectedIndex="0"
ContentCssClass="accordionContent" FadeTransitions="true" FramesPerSecond="30"
TransitionDuration="250" AutoSize="None" Width="270">
</atlas:Accordion>
*Update: *
Added accordion control declaration as requested, is there anything else I can add that could be useful?
Does anyone have any idea about this error at all - am I right in thinking it's MS AJAX not playing nicely with other javascript (probably jQuery UI) on the page?
View 1 Replies
Oct 5, 2010
I'm building a website in vs2010, i generate usercontrols (aspx and ascx pages), if i run the website i get the error : unable to cast object of type 'ASP.ProjectName_master' to type 'ProjectName.master'
I have a folder 'App_Code' under my startproject, that's not a default asp folder any more i think since vs2005, is that maybe the problem?
Under the App_Code folder i have the master.cs file, in this file i get the error.
[code]....
View 1 Replies
Sep 7, 2010
I have a main page with several menu choices, one of which launches an ajax enabled window. The following pattern occurs:If I:
1) Launch site
2) Select menu choice listed on master page that is not ajax enabled
3) Select menu choice that launches ajax enabled popup.
4) close pages
All is OK.If I repeat the steps, but in step 2 I select an ajax enabled page and them launch popup, I get the following error:Message: Sys.ArgumentTypeException: Object of type 'Sys.UI._Timer' cannot be converted to type 'Sys.UI._Timer'.I have spent days on this and have been unable to solve it. If I remove the ajax ToolkitScriptManager and update panels from any of the pages and launch the popup, it works. Can anyone offer some guidance?that are not ajax enabled and then selethat includes an ajax enabled popup window. T
View 1 Replies
Apr 15, 2010
I got this error and do not know how to solve it.
I've got a subweb as application. It's called ADMIN. It works fine when running locally but when deploying in the development web server, i got the error: Unable to cast object of type 'System.Web.HttpApplication' to type 'Microsoft.Practices.CompositeWeb.WebClientApplication'
I've got a App_global.asax.dll and App_global.asax.complied on the subweb folder Admin.
View 1 Replies
Jan 31, 2011
If I have a View for 'People' and a View for 'Company' and each has an associated list of 'Orders', should there be a separate view for each? Such as /People/Orders and Company/Orders, or should I simply have a single /Orders views and pass in some parameters?
View 9 Replies
Dec 1, 2010
I'm trying to pass email addresses from an array to a stored procedure, then display the results in my gridview. I get the following error:No mapping exists from object type System.String[] to a known managed provider native type.On this line: Dim DR As SqlDataReader = MyCommand.ExecuteReader
[Code]....
View 4 Replies
May 31, 2010
I've been developing an application using asp.net MVC, and I have some configurations that influences in process of render a view. For example, a user can choose (in an configuration of system) if a field should appear for a management of records in an area of the system. So, I have an class called AppConfiguration has some properties to represent this configurations.
I guess I need to cache an object of AppConfiguration, and make a ViewModel base class and inherits from my viewmodel, for example:
public class BaseViewModel {
public AppConfiguration Config { get; set; }
}
public class DocumentViewModel : BaseViewModel {
public Document Document { get; set; }
}
and make typed views using "DocumentViewModel" to check the properties if this kind of document is able to render or not ? is it works ? Or is there any other better way to do something like this ?
View 1 Replies
May 11, 2010
Just a quick question really but with the strongly typed views where MVC can autobind form fields to the propertys of an object I define, how does this work when supporting multiple forms on the same view?Is it possible to have two objects with different properties,
Object1 { Name, Age }
Object2 { StartDate, EndDate }
Then on the view have two seperate forms, one for each object and the controller can work out which object it is to post back because of the form which eventually gets posted back?
View 5 Replies
Feb 3, 2011
When i loading modules from different places i injected them to controller factory, but when it is trying to load strongly typed views it can't find model type that is contained in module assembly.I made new ViewEngine and now it looks in right places but it cant load strongly typed views.
So as i understand i need to show the view where to find class model. If you have any other ideas please tel me. And one more i need this problem to be solved for WebFormViewEngine and RazorViewEngine.
View 4 Replies
Jun 8, 2010
I'm trying to create a simple Guestbook web service using ASP.NET WebServices. When trying to serialize a list of objects, I get the following exception:
System.InvalidOperationException: The type of the argument object 'GuestBookService.GuestBookEntry' is not primitive.
How can I fix this error?
View 1 Replies
Oct 19, 2010
Still struggling with this code
I'm trying to follow an example in a book i'm reading, but the example is using linq to sql, i'm trying to use linq to xml. Problem is i get the following error: [Code]....
View 10 Replies