EscapeDataString не может быть нулевым - PullRequest
0 голосов
/ 23 мая 2018

Я использую MVC, я пытаюсь создать учетную запись из mvc, но я хочу, чтобы в качестве имени пользователя пользователя было указано его псевдоним steam, указав только steamid в представлении создания.

public string GetUsernameFromId(string Steamid)
{
    string steamid2 = Steamid.ToString();
    XDocument doc = XDocument.Load("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=steamapihide&steamids=" + Uri.EscapeDataString(steamid2) + "&format=xml");

    string UserNames = (string)doc.Descendants("personaname").FirstOrDefault();

    return UserNames;
}

в контроллере у меня есть это

  [HttpGet]
        public ActionResult Create(string Tradelink, string password, string Steamid)
    {
        Balance accBalance = bctrl.CreateonCreateAccount();

        SteamAccount acc = new SteamAccount
        {
            SteamId = Steamid,
            UserName = GetUsernameFromId(Steamid),
            Password = password,
            accountbalance = accBalance,
            TradeLink = Tradelink

        };
        Create(acc);
        return View();
    }

    [HttpPost]
    public ActionResult Create(SteamAccount acc)
    {
        if (ModelState.IsValid)
        {
            Balance accountbalance = bctrl.CreateonCreateAccount();
            acc.accountbalance = accountbalance;
            acc.UserName = GetUsernameFromId(acc.SteamId);
            foreach (var item in acc.AccountSkins)
            {
                sctrl.CreateonCreateAccount(item);
            }
            AccountRepo.Insert(acc);
            AccountRepo.Save();
            return RedirectToAction("Index");
        }
        else
        {
            return View(acc);
        }
    }

это мой класс модели

namespace CSGO_MVC.Models

{
    public class SteamAccount
    {
        [Key]
    public int Id { get; set; }

    public string SteamId { get; set; }

    public Balance accountbalance { get; set; }

    [Required(ErrorMessage = "Please Provide Username", AllowEmptyStrings = false)]
    public string UserName { get; set; }

    [Required(ErrorMessage = "Please provide password", AllowEmptyStrings = false)]
    [DataType(System.ComponentModel.DataAnnotations.DataType.Password)]
    public string Password { get; set; }

    public bool UserStatus { get; set; }

    public string TradeLink { get; set; }

    public List<Skin> AccountSkins { get; set; }

, поэтому я получаю ошибку, что Steamid не может быть нулевым вGetUsernameFromId метод, когда я пытаюсь запустить это.

Любая помощь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...