ASP.NET MVC WEB API

本文关键字:API WEB MVC NET ASP | 更新日期: 2023-09-27 18:19:13

MVC新功能。我做了教程@ [http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/build-a-single-page-application-(spa)-with-aspnet-web-api-and-angularjs],从这个你产生一个问答网站。如果我想保持进度,即保持正确回答的问题数量的计数,我需要从检索数据库计算这个值。TriviaAnswers对象,或者我是否需要添加一个Count属性到TriviaAnswer类,或者我是否需要一个单独的变量,那么我如何维护请求之间的状态?如ViewBag在

中不可用
public async Task<IHttpActionResult> Post(TriviaAnswer answer){...}

方法。

选项1如下所示:

namespace GeekQuiz.Models
{
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using Newtonsoft.Json;
    public class TriviaResults
    {
        [Required, Key, Column(Order=1)]
        public string UserId { get; set; }
        [Required, Key, Column(Order=0)]
        public virtual int QuestionId { get; set; }
    }
}

下面的代码在方法中抛出InvalidOperationException:

private async Task<TriviaQuestion> NextQuestionAsync(string userId)
lastQuestionId = ...

ASP.NET MVC WEB API

几个月前我复习过这个教程。

选项1:如果你想跟踪进度,我假设你的意思是每个用户的进度,那么我建议你在数据库中添加一个表,其中保存了用户id和正确回答的问题的id -这是在你想将其保存为持久数据和每个用户的情况下。

选项2:如果您想要同样的事情,每个用户保存数据,但只针对此会话,您可以将数据保存在会话变量中作为dictionary<userid, list<questionid>>

你应该注意到的一件事是,这些问题在一个无限循环中重复,所以你可能想要改变它。

在这两个选项中,当你需要知道计数时,你可以去表格或字典中获取正确答案的数量。

我希望这能回答你的问题。

使用会话变量:

Session["name"] = value;
Session.Remove("name");