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 = ...
几个月前我复习过这个教程。
选项1:如果你想跟踪进度,我假设你的意思是每个用户的进度,那么我建议你在数据库中添加一个表,其中保存了用户id和正确回答的问题的id -这是在你想将其保存为持久数据和每个用户的情况下。
选项2:如果您想要同样的事情,每个用户保存数据,但只针对此会话,您可以将数据保存在会话变量中作为dictionary<userid, list<questionid>>
。
你应该注意到的一件事是,这些问题在一个无限循环中重复,所以你可能想要改变它。
在这两个选项中,当你需要知道计数时,你可以去表格或字典中获取正确答案的数量。
我希望这能回答你的问题。
使用会话变量:
Session["name"] = value;
Session.Remove("name");