2017-04-11 12 views
1

私は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=utf­8', 
     data: JSON.stringify(""), 
     success: function (cred) { 
      alert(cred); 
     }, 
     error: function (error) { 
      alert(JSON.stringify(error)); 
     } 
    }); 
} 

私は404が見つかりませんでしたステータスバックを取得しておきます。これは、職場のサーバーの1つにあるIIS上に展開されるASPサイトです。私たちはWindows認証を使用しているので、ログインしている人の資格情報を取得し、後で何かのために保管したいと思います。

私はここで私の知恵の終わりのようなものです。誰もがアイデアを持っていますか?

+4

jQueryから 'POST 'している間に、あなたのアクションメソッドに' [HttpGet] 'を宣言しました。 – kayess

+0

@kayess私はJS wizではありませんが、問題の答えでした。 「取得」に切り替えてもこれは解決されません。 – OmniOwl

+0

"/ Home/GetCredentials"だけをURLとして試しましたか?また、上記のGETへの変更のように、コントローラがjsonを返さないためにcontentTypeを削除し、dataTypeを "text"に変更してください。 – Kris

答えて

2

"/ Home/GetCredentials"にURLでアクセスしようとしましたか?また、上記のように、GETメソッドに変更し、contentTypeを削除し、コントローラがJSONを返さないためdataTypeを "text"に変更します。

+0

実際に私は何もしなかった彼のソリューションを試してみました。 – OmniOwl

関連する問題