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]并从此生成问答网站。如果我想保持进度,即保持正确答案的数量的计数,是否需要从检索db.TriviaAnswers对象计算此值,还是需要将Count属性添加到TriviaAnswer类,还是需要一个单独的变量,那么我如何维护请求之间的状态? Like ViewBag不可用于ASP.NET MVC WEB API
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 = ...
它不回答我的问题。我不介意这两种选择,因为它们都有目的。如果我在用户(或任何其他人)需要在稍后阶段看到结果,并且选项2结果不计入任何内容并因此只对当前的用户。我对选项2持怀疑态度的唯一原因是因为我只需要知道我是否注销并再次登录,我的会话就会重置。我是否需要添加呼叫以在帐户控制器登录方法中清除会话? – Glen
我在这里错过了什么,Session在我描述的上下文中不可用,所以我怎么称呼它? – Glen
关于login \ logout,我不是100%确定的,你可以直接自己检查一下。并添加一个呼叫来清除会话,这很容易,因为将值放在首位。我将使用代码 – LiranBo