私はASPプロジェクトのJavaScriptからC#メソッドを呼び出す場所をいくつか見てきました。私は何が間違っているのか分かりません。ここに私のC#クラスがある:404 ASPでJavaScriptのHttpメソッドを呼び出すことができません
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Services;
namespace Selfservice.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpGet]
public String GetCredentials()
{
return User.Identity.Name.ToString();
}
}
}
そして、ここでは、JavaScriptで私が呼んしようとしている:
window.onload = function() {
LiveSearch();
getCredentials();
//FetchAllUsers();
};
function getCredentials() {
$.ajax({
type: 'POST',
url: '@Url.Action("GetCredentials", "Home")',
dataType: 'json',
cache: false,
contentType: 'application/json; charset=utf8',
data: JSON.stringify(""),
success: function (cred) {
alert(cred);
},
error: function (error) {
alert(JSON.stringify(error));
}
});
}
私は404が見つかりませんでしたステータスバックを取得しておきます。これは、職場のサーバーの1つにあるIIS上に展開されるASPサイトです。私たちはWindows認証を使用しているので、ログインしている人の資格情報を取得し、後で何かのために保管したいと思います。
私はここで私の知恵の終わりのようなものです。誰もがアイデアを持っていますか?
jQueryから 'POST 'している間に、あなたのアクションメソッドに' [HttpGet] 'を宣言しました。 – kayess
@kayess私はJS wizではありませんが、問題の答えでした。 「取得」に切り替えてもこれは解決されません。 – OmniOwl
"/ Home/GetCredentials"だけをURLとして試しましたか?また、上記のGETへの変更のように、コントローラがjsonを返さないためにcontentTypeを削除し、dataTypeを "text"に変更してください。 – Kris