ASP.NET MVC无法呈现视图

时间:2017-07-05 08:54:42

标签: c# asp.net asp.net-mvc-4 razor

我有以下

NewsFeedController.cs

public class NewsFeedController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult TwitterCallback(string oauth_token, string oauth_verifier)
    {
        var requestToken = new OAuthRequestToken { Token = oauth_token };

        string Key = "";
        string Secret = "";

        try
        {
            TwitterService service = new TwitterService(Key, Secret);

            OAuthAccessToken accessToken = service.GetAccessToken(requestToken, oauth_verifier);

            service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);

            VerifyCredentialsOptions option = new VerifyCredentialsOptions();

            TwitterUser user = service.VerifyCredentials(option);
            String name = user.ScreenName;

            ViewData["user_name"] = name;
        }
        catch
        {
            throw;
        }
        return View();
    }
}

以下

TwitterCallback.cshtml

@{
    ViewData["Title"] = "TwitterCallback";
}

<h2>Hello, @ViewData["user_name"]</h2>

RouteConfig.cs

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

我的问题是NewsFeedController没有呈现任何内容。它执行TwitterCallback而不抛出异常,但它不返回任何视图。如果我将方法类型更改为String并返回ViewData["user_name"],则会显示正确的名称。因此,我想我已经以某种方式宣布了错误的观点。

我刚刚开始使用mvc,所以如果这听起来像是一个初学者问题我会道歉。

非常感谢任何帮助/提示!

项目结构:

Project Structure

这就是我得到的:(没有错误信息,没有)

enter image description here

编辑: 这就是调用回调URL的方式:(其中TwitterAuth是HomeController.cs中的一个方法,当用户单击登录按钮时调用它)

public ActionResult TwitterAuth()
        {
            string Key = "";
            string Secret = "";

            TwitterService service = new TwitterService(Key, Secret);

            OAuthRequestToken requestToken = service.GetRequestToken("http://127.0.0.1:8080/NewsFeed/TwitterCallback");

            Uri uri = service.GetAuthenticationUrl(requestToken);

            return Redirect(uri.ToString());
        } 

如果我只是在浏览器中粘贴重定向网址,我会得到: enter image description here

EDIT2:谢谢大家的帮助。我仍然不明白为什么它首先不起作用(正如Andrei在评论中说的那样,这不是.net问题)我将我的推特库改为tweetinvi,现在它可以工作了。

0 个答案:

没有答案