0

I am following the following tutorial (http://www.highoncoding.com/Articles/642_Creating_a_Stock_Widget_in_ASP_NET_MVC_Application.aspx) on using ajax to render a partial form , but in this example parameters are not passed, and I have not been able to work out how to do it...

This code works with no parameter

function GetDetails() {
$("#divDetails").load('Details'); 
}

This is my attempt to add a parameter, but does not work (cant find action)

function GetDetails() {
$("#divDetails").load('Details?Id=20'); 
}

2 Answers 2

1

Paramters in MVC are added like this:

http://mysite.com/action/parameter

Change your question mark to a forward slash, and make sure your path is referenced correctly from your jquery code. You can use Firebug in Firefox or Fiddler in IE to look at the GET operation to make sure the URL for the request is properly formed.

Sign up to request clarification or add additional context in comments.

2 Comments

Not just replace should be 'Details/20'
thanks, this does work; As long as the parameter is called Id
0

The jQuery.load() method can take an object and will turn the request into a POST and ASP.NET MVC should do the rest.

So it should work if you try this:

function GetDetails() {
    $("#divDetails").load('Details', {Id: 20}); 
}

HTHs,
Charles

Ps. The default route should beable to handle Controller/Action/Id, so you should beable to do something like $("#divDetails").load('Controller/Details/20');

6 Comments

Thats the same thing in his post, see my comment on @Dave Swersky's answer.
That won't work if he's trying to use the View action parameter.
@durilai - no it's not, adding the object turns the .load into a post. @Dave Swersky - yes it should work, when doing databinding to action parameters ASP.NET MVC will check the POST values.
Sorry, POSTing like that still won't work without an ActionFilter to parse the JSON format. The code in your PS should work.
@Dave Swersky - I'm no expert on jQuery but I'm pretty sure passing in {Id: 20} doesn't mean that you'll get JSON in the POST values... it means that you'll have a key value pair in your post values. So therefore, ASP.NET MVC will handle it and you'll get it in your action parameter.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.