I’ve looked at the previously-posted jQuery/MVC questions and haven’t found a workable answer.
I have the following JavaScript code:
$.ajax({
type: "POST",
url: '@Url.Action("Search","Controller")',
data: "{queryString:'" + searchVal + "'}",
contentType: "application/json; charset=utf-8",
dataType: "html",
success: function (data) {
alert("here" + data.d.toString());
}
});
When calling the Url the post looks like:
NetworkError: 500 Internal Server Error - <a href="http://localhost/Web/Navigation/@Url.Action(%22Search%22,%22Chat%22)"></a>
Why does it return it like this (the logic behind it) and what’s a solution?
P.S.: Additional Information: %22 is the URL Encoding Reference for <<">> character
In order for this to work that JavaScript must be placed within a Razor view so that the line
is parsed by Razor and the real value replaced.
If you don’t want to move your JavaScript into your View you could look at creating a settings object in the view and then referencing that from your JavaScript file.
e.g.
and in your .js file:
or alternatively look at levering the framework’s built in Ajax methods within the HtmlHelpers which allow you to achieve the same without "polluting" your Views with JS code.