Новое для 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 или мне нужно отдельную переменную, то как мне поддерживать состояние между запросами? Как 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 = ...
Это ответ на мой вопрос. Я не возражаю против одного из вариантов, поскольку у обоих есть цели. Есть случай для варианта 1, где мне это нужно, если я, как и у пользователя (или кто-то еще, если на то пошло), должен увидеть результаты на более позднем этапе и option2, когда результаты не рассчитывают ни на что и, следовательно, имеют значение только для текущий пользователь в то время. Единственная причина, по которой я скептически отношусь к варианту 2, потому что мне просто нужно знать, если я выйду и войду снова, мой сеанс будет сброшен. Нужно ли добавлять вызов для очистки сеанса в методе входа в Контроллер учетной записи? – Glen
Я что-то упустил, сессия не доступна в контексте, который я описал, так как/где я его называю? – Glen
Я не уверен на 100%, когда дело доходит до login \ logout, вы можете просто проверить это самостоятельно. и о добавлении вызова, чтобы очистить сеанс, и это легко, поскольку размещение значений там в первую очередь. Я отредактирую свой ответ с кодом – LiranBo