簡體   English   中英

ASP.NET MVC WEB API

[英]ASP.NET MVC WEB API

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對象來計算該值,或者是否需要向TriviaAnswer類添加Count屬性,或者是否需要單獨的變量,然后如何維護請求之間的狀態? 像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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM