MVC :: OnComplete Ajax.ActionLink Parameter Not Json In MVC 3?
Jan 27, 2011
I posted this on Stack overflow [URL] but have not had a solution, just completely different way of doing it without using the Ajax.* helpers so I'm wondering if anyone has an Ajax.* solution here?I'm using MVC 3. I have a method on the controller that returns a Json object, according to this question it should be returned to me as Json, but I am finding that is not the case[URL]
here's the code that I have:
[Code]....
And the controller:
[Code]....
The first message box displays the response text which is:{"Success":True, "objectId":"testing"}
the second message box displays undefinedSo it is coming back to the client correctly, I'm just not sure how to get it out?...Stefan
I have an Ajax form that lets me dynamically remove rows from a table using the OnComplete AjaxOption. That works great.The problem is that even if I hit "Cancel" on the confirm dialog, it still executes the OnComplete javascript. So the form doesn't post, but it looks like it did to the user (the row is removed from the table).code below:
I've never been able to understand why it is that some things are made in a particular way, and Html.ActionLink is one of these. In Global.asax, if I want to create a route, it has the format:
[Code]....
The order of the necessary parameters here is "name/controller/action/extra params". When using Html.ActionLink, the parameter order is "name/action/controller/extra params", which is much the same but with two of them switched around. To make things more confusing, the rendered html from the Html.ActionLink has the original order "controller/action/extra params" with the name inside of the anchor tag. Why do this? It's easy enough to memorize that the order is switched for absolutely no reason I can discerne, but why do it in the first place?
.I am using VS2010 Ultimate in an out of the box HelloWorld MVC2 ProjectI am using JQuery 1.4.1I have the following code in my View:
function TestStringArray() { var stringArray = new Array(); stringArray[0] = "item1";
[code]...
Forgetting my controller actually needs to return a Json result (I have a break on the return View() line), the values parameter is null. When I pass in a single string (change the type from List<String> to String in the controller, pass in a single string value from the View), it works fine. Looking at Fiddler, the array is passing the multiple values.I did some research and people are suggesting JSON.Stringify ion the JSON2 library, the JSON.NEt library, etc... Do I really need extra libraries? Microsoft didn't think of this scenario for out of the box? I assume the problem is any kind of complex type.
I have an ASP.NET PageMethod with the following signature:
<WebMethod()> _ Public Shared Function SaveCodes(ByVal codes As List(Of Code)) As String
I am trying to pass a JSON object to the PageMethod from the client side, but I get an error that the type String cannot be converted to type of List<Code>.
Here is the json that I'm building on the client and sending to the method:
[code]....
I have been able to pass in simple data types and a single instance of the Code class, but I can't seem to find the magin to pass a List to the server method. Can anyone show me what I'm doing wrong?
I'm trying to implement uploadify, but for some reason I'm failing at getting the event onComplete.My code looks like this so far and the uploadify can upload the files to the folder that I've selected.
Sys.Application.add_load(AddAdvertise); function AddAdvertise() { $('.flUploadImage').uploadify({
I am fairly new to MVC and just trying to achieve something which I think shouldn't be too complicated to achieve. Just want to know what the best approach for that is. I have an Event-RSVP application (NerdDinner kind) where you go to view details of the event and then click on an AJAX link that will RSVP you for the event.
<% if (Model.HasRSVP(Context.User.Identity.Name)) { %> <p>
You are registered for this event!
<%: Ajax.ActionLink("Click here if you can't make it!", "CancelRegistration", "RSVP", new { id = Model.RSVPs.FirstOrDefault(r => r.AttendeeName.ToLower() == User.Identity.Name.ToLower()).RSVPID }, new AjaxOptions { UpdateTargetId = "QuickRegister"}) %> </p> <% } else { %> <p>................
I know that I do not want to actually use an Ajax.ActionLink from within a JavaScript function, but for the life of me I cannot figure out how to replicate the behavior. Here is what I have in my MVC 3 RC2 _Layout.cshtml:
[Code]....
I do NOT want to use:
[Code]....
Unless that can be made to populate at runtime, on demand from a script. manually clicking the ""Load Menu" ActionLink works exactly like I want except it requires the user to click the link; I want to do that for them... in this case from the Body onload event.
I have many Ajax.ActionLink's on my ASP.NET MVC (v1) page that perform destructive operations. This is "legal" because I set HttpMethod to DELETE in this case so it's not a destructive GET.
My question though is how to mitigate XSRF attacks on this operation so that other sites cannot craft this same Ajax DELETE request to delete user data from another site. This ActionLink does appear within a form that includes <%= Html.AntiForgeryToken() %> but since ActionLinks don't post the form, the anti-forgery token doesn't go to the controller, so it can't validate it.
1) Polls EF model (Poll (ID,Text),PollQuestions(ID, PollID, Answer),PollStatistics (ID,VotesCount)) 2) Action in Home Controller named Poll which returns Poll model 3) Action in Home Controller names PollResult which returns PollStatistics model 4) On Partial View Poll (radiobuttons using PollQuestions list), ActionLink to post pack 5) On Partial View PollStatistics results information 6) In Home View <div id="Poll">{Here is shown Poll PartialView}</div>
I'm quite new to MVC tech. so the question would be how can I manage Ajax postback when ActionLink is pressed and show up polls result using PollStatistics? (How does result view is passed?) If it's possible - just simple example :)
I've spent a while trying to figure this one out, . I am trying to implement a simple jax.actionlink(first time using) on rows in a table to remove the record from the user control. The ActionLink httpMethod is set to POST but it is not even hitting the Post action I have in the controller. It just gives me a 404 Resource not found error everytime.
I checked fiddler and the reason why I think is because its doing a GET instead of the value i set of POST. I dont have a get method for this since its just an ajax call to delete a record and return a partial view back to the div. I put a breakpoint in the POST method and definitely is not hitting that method. I'm not sure if its something simple or a configuration/routing issue or IIS issue. I've tried in chrome and IE8 just in case.
using System; using System.Collections.Generic; using System.Linq; [code]....
When I click the action link in IE the controller code runs but the div is NOT updated. Do it in ANY other browser and it works just fine. Is this (yet another) known problem/bug with IE??
I've got problem with generating ajax anchors. I'm using simple
Ajax.ActionLink("test", "Test", new AjaxOptions { UpdateTargetId="test", HttpMethod="GET" }) and the generated markup is: <a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#test" href="/Home/Test">test</a> which, obviously lacks the onclick="Sys.Mvc.AsyncHyperlink.handleClick(...)" attribute.
I am new to WCF, I was using web service asmx before. I have trouble on making my wcf JSON ajax service work through http like asmx.Could you help me see what wrong in my code?My WCF services are defined in my website application folder. My aim is to call this service in my aspx page java-script code and return complex object back as JSON to my javascript. I have no problem on doing this through classic asmx web service.
When I try to test it through my browser by type this in the URL , URL-http://localhost:3849/WebServices/Account/WCFCompanyService.svc/GetAll. it return "Method not allowed."
But if I type just this URL-http://localhost:3849/WebServices/Account/WCFCompanyService.svc, it return this:
WCFCompanyService Service
You have created a service.To test this service, you will need to create a client and use it to call the service. You can do this using the svcutil.exe tool from the command line with the following syntax:
This will generate a configuration file and a code file that contains the client class. Add the two files to your client application and use the generated client class to call the Service. For example:
C#
class Test { static void Main() { HelloClient client = new HelloClient();