MVC :: JSON - Call SendForm Method Instead Of Index
Sep 10, 2010
I have problem with JSON, MapRoute. If I click on "save" I always get Page / Index Page instead of / SendForm. I dont know why, in javascript it says url: '/ page / sendform'. But the problem is at Global.asax.cs,
routes.MapRoute("Default",
"{controller}/{action}/{url}",
new { controller = "Page", action = "Index", url = UrlParameter.Optional });
But there is still problem at the url, which shows Controller, Action that I dont want to .. I have a url / lang / seo-url /. How can I achieve by clicking on the Save, it should call SendForm method instead of Index ..
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("page",
"{lang}/{url}",
new { controller = "Page", action = "Index", lang = "cz", url = UrlParameter.Optional });
routes.MapRoute("Default",
"{controller}/{action}/{url}",
new { controller = "Page", action = "Index", url = UrlParameter.Optional });
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
}
}
Index.aspx
<script type="text/javascript">
$(function () {
$("#personCreate").click(function () {
var person = getPerson();
// poor man's validation
if (person == null) {
alert("Specify a name please!");
return;
}
var json = $.toJSON(person);
$.ajax({
url: '/page/sendform',
type: 'POST',
dataType: 'json',
data: json,
contentType: 'application/json; charset=utf-8',
success: function (data) {
// get the result and do some magic with it
var message = data.Message;
$("#resultMessage").html(message);
}
});
});
});
function getPerson() {
var name = "Ruda";
var age = "18";
// poor man's validation
return (name == "") ? null : { Name: name, Age: age };
}
</script>
<input type="submit" value="Save" id="personCreate" />
PageCollector.cs
public class PageController : Controller
{
//
// GET: /Page/
public ActionResult Index(string lang, string url)
{
switch(url)
{
case "anglictina":
return View("~/Views/English/Index.aspx");
case "nemcina":
return View("~/Views/German/Index.aspx");
case "prihlaska":
return View("~/Views/Application/Index.aspx");
case "galerie":
return View("~/Views/Galerie/Index.aspx");
case "kontakt":
return View("~/Views/Contact/Index.aspx");
default:
return View("~/Views/English/Index.aspx");
}
}
[HttpPost]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public JsonResult SendForm(string name, string age)
{
return Json(string.Format("Message: '{0}'", name));
}
}
View 2 Replies
Similar Messages:
Apr 3, 2010
How to call a method on a server side from JSON. Below is the code I am using
SERVER SIDE:
[Code]....
Now I want that on button click, I would call the function at the client side [JSON], which pass the textbox value to the function.
View 2 Replies
Jul 3, 2010
I am using JQuery & JSON (POST) to call webmethod. However I can call only webmethod located at aspx file but not in asmx file Below are sample codes
CustomValidate.asmx
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Public Class CustomValidate
Inherits System.Web.Services.WebService
'ACCESS VIA JSON
<System.Web.Services.WebMethod()> _
Public Shared Function AJAX_Test(ByVal date1) As Boolean...
Return True
End Function
End Class
Javascript: JQuery JSON
function isDates(source, arguments) {
var isValidDate;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "CustomValidate.asmx/AJAX_Test",
data: '{date1: "' + arguments.Value + '"}',
dataType: "json",
async: false,
success: function(result) {
isValidDate = result;
},
error: function(httpRequest, textStatus, errorThrown) {
alert("status=" + textStatus + ",error=" + errorThrown);
}
});
arguments.IsValid = isValidDate;
}
It always return javascript undefined error. But if I put the AJAX_Test webmethod in aspx page and replace the url: "CustomValidate.asmx/AJAX_Test" to "mypage.aspx/AJAX_Test". It works fine.
View 1 Replies
Sep 22, 2010
When this function is hit , it does not call my function in code behind? Why could it be doing this? How can I fix this error.
$(document).ready(function() {
$('[id$=btn_Update]').click(function() {
var reten = $('[id$=txt_Reten]').val();
var i=0;
var selectValues = "";
var ProdID = new Array();
$("#lst_ProdId option").each(function() {
selectValues = selectValues + $(this).text() + ",";
ProdID[i] = $(this).text();
i++;
});
for(var j=0; j < ProdID.length;j++)
{
// alert(ProdID[j]);
}
var params = "{'ProdID':'" + ProdID + "','RetenP':'" + reten + "'}";
$.ajax({
type: "POST",
url: "/ProductPricing/Products/RetenPeriod.aspx/UpdateRetenPeriod",
data: params,
contentType: "application/json; charset=utf-8",
datatype: "json",
success: function(result) {
alert("sucess");
},
error:function(e) {
alert(e.statusText);
// if(errorThrown != null)
// alert(textStatus+ ":"+errorThrown);
// else
// alert("fail");
}
});
return false;
});
return false;
});
This is my webmethod in code behind:
[WebMethod]
public static bool UpdateRetenPeriod(string[] ProdID,string RetenP)
{
for (int i = 0; i < ProdID.Length; i++)
{
update(ProdID[i],RetenP);
}
return true;
}
View 3 Replies
Feb 17, 2011
I would like to get a field value using an index on an json object.
The json object looks like : {PartList:[{Field1:"echo",Field2:"bravo"},{Field1:"yes",Field2:"no"}]}
I know that if I would like to have the Field1 value it is on the index 0, and for example for the first item in the array:
jsonObject.PartList[0][0] , here the first index is working but the second index given is not. But is it possible to do this ?
View 4 Replies
Feb 15, 2011
I am looping through a JSON table using jquerys foreach operator. I am having to reference the the columns by name e.g:
$.each(items, function (index, item) {
if (item.CustomerFname == "Bob") {
alert(item.CustomerFname + " " item.CustomerSname)
}
Whereas I would like to be able to say something like:
[code]....
Ultimately I'm trying to make this function dynamic with respects to the json list I pass in which will of course mean that the column names will change. However I would like to perform the same operations on the columns...
View 2 Replies
Mar 4, 2010
I have an ActiveX object which extends some functions. I have a web page that loads the ActiveX object and calls its methods in Javascript. The ActiveX object has two method; the problem is that Javascript can successfully call one of them but fails to call the other; citing Object doesn't support this property or method which is nonsense because I made a VB6.0 application that successfully calls this other method, so the two functions are indeed extended correctly and performing their job. And yes, the Internet Explorer security zones are all set and everything, as I wrote above the javascript code can call one method but refuses to call the other.
View 1 Replies
Sep 14, 2010
I want to execute a certain piece of code by default before each web Method.
Without adding any extra code in each method how to achieve this?
I am calling this service from Win application.
View 1 Replies
Jan 25, 2011
I have a web method in my code behind:
[System.Web.Services.WebMethod]
public static string GetStateData(string state)
{
//this is where i want to call a javascript method "GetItems"
}
I have a javascript method that retrieves some values for me and I want to get use one of those values in my web method
function GetItems() {
var variable1= $("#<%=Item1.ClientID %> input:checked");
var variable2= $("#<%=Item2.ClientID %>").val();
return [variable1.text(), variable2.val(), variable2];}
I've searched for ways to call the javascript method from the web method but every time my search results in how to call a web method from javascript.
I did find this but it was done from the code-behind of a silverlight project and when I tried adding the correct reference to my code-behind it wasn't there
var result = HtmlPage.Window.Invoke("GetItems"); Is there a reference I'm missing?
View 2 Replies
Mar 26, 2016
$("#Name").on("blur", function() {
if (Name != "" && Name != null) {
var options = {
type: "POST",
url: "ApplyNow.aspx/CheckName",
[code]...
how to use the value of 'duplicate' in btnsunmit_click() from webmethod.
View 1 Replies
Nov 16, 2010
i use JSon to return allot of results when building a website, but find myself writing a a lot of code like this:
[Code]....
and then simply call this function with whatever IEnumerable results i have my question is would i be on the right lines here, what would be the best possible way to do this as it makes no sense to be writing in MVC and OOP but to keep rewriting code to just FROM ?
View 5 Replies
Jan 15, 2010
I need to make a call to a json webservice from C# Asp.net. The service returns a json object and the json data that the webservice wants look like this:
"data" : "my data"
This is what I've come up with but I can't understand how I add the data to my request and send it and then parse the json data that I get back.
string data = "test";
Uri address = new Uri("http://localhost/Service.svc/json");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
string postData = "{"data":"" + data + ""}";
How can I add my json data to my request and then parse the response?
View 1 Replies
Feb 9, 2011
I have a dropdown box on my aspx page, I would want o pupulate it using jquery's json of calling a method. I do not want to call a webservice method. I have a class, in C# and want to call a method from the class.
View 6 Replies
Oct 10, 2010
I have a JSON object in javascript
it is a collection of Object
How can I pass this object to a controller if i am submitting the form like
$('#myform').submit();
what object type should i give for the parameter to accept this Json
View 5 Replies
Oct 12, 2010
I have a problem with a AJAX call I do in a application. It's a MVC application (ASP.net c#) with a lot of javascript.
When I do a call from my javascript to a controller (through a ajax call) the call gets to the class and function, but the data isn't there. The data is send in JSON.
I found a few of the same problem but most of the time they used another name voor de parameter then it is in there json.
Here is the code
[Code]....
View 3 Replies
Feb 9, 2010
I have a Page that expects a POST Request and returns some JSON. Essentially it's an .ashx Page, but that doesn't really matter.
When using jQuery, I would use jQuery.Post with "json" as dataType to simply make the POST request and get an object back. However, for the current project I mainly use ASP.net AJAX and I don't want to add jQuery just for the call.
For ASP.net AJAX, I only found information on how to call a "traditional" web service though, which means adding a asp:ServiceReference to the ScriptManager and having a "real" Web Service at the end.
Is there a simpler way to make a POST call to a Page? I could live with getting the raw JSON and then manually eval()ing it, but I don't want to create a full asmx web service (deploying them on SharePoint is a bit painful, and my ashx handler works fine)
View 3 Replies
Nov 25, 2010
This is probably something simple. The following JQuery call is executing and calling the controller. The controller is executing correctly. I used the sample data that's commented out to verify that the templates were working also. However, the success function is not executing in the browser. Any thoughts or other ways I can debug this?
<script type="text/javascript">$(document).ready( function(){ alert("Here"); @* var myData = [ {first: "Jane", last: "Doe"}, {first: "John", last: "Doe"} ]; *@ $.getJSON( "/User/Filter",function(myData){ $("#myDataTemplate").tmpl(myData).appendTo("#itemContainer"); } ); alert("there"); }
);</script>
//Controller
public ActionResult Filter() { var myData = this.repository.GetAllUsers(); //return Json(myData); return Json(myData, JsonRequestBehavior.AllowGet);}
View 6 Replies
Mar 15, 2010
I have the following javascript:
$.post("/Authenticated/DeletePage/" + PageId);
showStatus("Page deleted...", 10000);
I would like to instead pass showStatus() text that is returned by the $.post() call, rather than hardcoded text. How do I do this?
View 2 Replies
Feb 17, 2011
I'm trying to make a call to a JSON ASP.NET web service with .NET.
It is ok when I send " { county : 'whatever' } ", but I get a 500 Internal Server error if I try for example " { county : 'It's ok' } ".
[Code]....
I've found some posts with examples but I cannot make it work:
" { county : "whatever" } " and " { "county" : "whatever" } " also works.
But either of " { county : "It's ok" } ", " { county : "It's ok" } " or any other combination that contains a single quote in the variable work.
How can I send a single quote inside a JSON call?
View 2 Replies
Aug 27, 2010
the aspx:
[Code]....
the jquery :
[Code]....
The problem is that I need to use the text in a text box in my webmethod, and I can't because it's static, this results in a compilation error:
[Code]....
What can I do ?
View 8 Replies
Mar 29, 2010
i'm a total newbie with asp.net mvc and here's my jam:
i have a 3 level list box which selection on box A shows options on box B and selection on box B will show the options for box C.
I'm trying to do the whole thing in asp.net MVC and what i see is that the nerd dinner tutorial uses the ORM method.
so i created a dbml to the database and drag the stored proc inside. i create a datacontext object but i don't quite know how to connect the result from the stored proce which should be multiple rows of data and make it into a json. so i can keep all the json data inside the html page and using jquery i could make the selection process faster. i don't expect the data inside the three boxes to change so often thus i think this method should be quite viable.
Questions:
So how do i get the stored proc part
to return the data as json?
i've noticed some tutorial online
that the json return result part is
at the controller and not at the
model end.
Why is that?
Edit
FYI, i find what i mostly wanted to do here.
For the json part, i referenced here.
View 1 Replies
Jun 19, 2010
Actually I am trying to learn jQuery Ajax calls to asp.Net webservices.
I have been trying to call the webmethod below:
[code]....
Do I need to serialize my object in some way before setting the 'data' attribute, so that I can call $.ajax() function?
View 2 Replies
Mar 2, 2011
Is there anyway I can handle both json and html return types when posting jquery ajax:
For example, this ajax call expects html
[code]....
View 1 Replies
Mar 14, 2011
I am trying to return some data as json from an action method.
I have an employee object that looks like this:
public class Employee
{
public int EmployeeID {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
//Other irrelevant properties
}
Then I have a view model as follows
public Class EmployeeViewModel
{
public Employee Supervisor{get; set;}
public List<EmployeeViewModel> Employees
}
I need to return a json object that looks exactly like this:
{id: 1, name: John, children: [
{id: 1, name: Joe, children: []},
{id: 1, name: Rob, children: []}
]}
For now I only need to go to the second level as above, returning and supervisor and their staff members beneath them.
How would I go about returning this in my action method(I have the viewModel object hydrated already I just need to return it as json). My problem so far has been that the children property does not get populated.
View 1 Replies
Aug 11, 2010
I try to use the jquery + json to get all elements in form and build a JSON var to post in a ASP.NET MVC method.
[Code]....
It method get all fields in a form and build a JSON, but it dont put JSON inside JSON.
Example:
If i have the follow form:
<input name="person.name"><input name="person.age"><input name="person.address.street">
The serialized string build a JSON like this
{ "person.name": "??", "person.age": "??", "person.address.street": "??" }
I need a plugin or some function to generate like this:
{ "person": { "name" : "??", "age" : "??", "address":{ "street": "??" } } }
View 1 Replies