【发布时间】:2017-04-12 23:15:07
【问题描述】:
我正在构建一个 ASP.NET MVC 5 应用程序,我对这项技术还很陌生。我会非常感谢每一条建议,因为我遇到了困难。
我正在构建一个记忆游戏。我已经构建了游戏的 JavaScript 代码,游戏作为独立代码运行,具有静态定义的游戏卡片/图像数组。但现在我想将它放入 MVC 应用程序的结构中,并从数据库中检索卡片。
型号:
using System;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
namespace SmartBunnyApp.Models
{
public class Word
{
public int WordId { get; set; }
public string EnglishWord { get; set; }
public string PolishTranslation { get; set; }
public string Category { get; set; }
public byte[] ImageData { get; set; }
public string ImageMimeType { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SmartBunnyApp.Models;
namespace SmartBunnyApp.Models
{
public class WordsListViewModel
{
public IEnumerable<Word> Words { get; set; }
public PagingInfo PagingInfo { get; set; }
public string CurrentCategory { get; set; }
public byte[] ImageData { get; set; }
}
}
控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SmartBunnyApp.Abstract;
using SmartBunnyApp.Models;
namespace SmartBunnyApp.Controllers
{
public class WordController : Controller
{
private IWordRepository repository;
public int PageSize = 4;
public WordController(IWordRepository wordRepository)
{
this.repository = wordRepository;
}
public ViewResult List(string category, int page = 1)
{
WordsListViewModel viewModel = new WordsListViewModel
{
Words = repository.Words
.Where(p => category == null || p.Category == category)
.OrderBy(p => p.WordId)
.Skip((page - 1) * PageSize)
.Take(PageSize),
PagingInfo = new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = category == null ?
repository.Words.Count() :
repository.Words.Where(e => e.Category == category).Count()
},
CurrentCategory = category
};
return View(viewModel);
}
public IEnumerable<Word> GetAllWords()
{
return repository.Words;
}
public FileContentResult GetImage(int wordId)
{
Word word = repository.Words.FirstOrDefault(p => p.WordId == wordId);
if (word != null)
{
return File(word.ImageData, word.ImageMimeType);
} else
{
return null;
}
}
}
}
现在我需要 JavaScript(或者我已经知道的)jQuery 代码,这将帮助我从数据库中检索所选类别的单词及其图像,并将它们放入一个简单的多维表中,例如这个:
var memory_matching_array = [['dog.jpg','DOG],['penguin.jpg','PENGUIN']];
我尝试按照某人在下面评论中建议的方式实现它,但我不断收到错误消息。特别是我必须在 jQuery 函数中给出 URL 的部分对我来说很难(我不知道这个 URL 应该是什么样子),然后是我必须将数据放入表中以使其看起来像的部分我在上面粘贴的那个。
非常感谢大家的帮助!
【问题讨论】:
标签: javascript c# sql-server asp.net-mvc asp.net-mvc-5