Как получить модель с использованием сущностных фреймворков для ссылки на ViewModel - PullRequest
0 голосов
/ 18 июня 2019

У меня проблема со ссылкой на таблицу, в которой используются Entity Frameworks в модели представления.

Это Модель, я не совсем уверен, почему класс называется ViewModel, но я не назвал его.

public class RegisterViewModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} 
     characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation 
     password do not match.")]
    public string ConfirmPassword { get; set; }

    [Required]
    [Display(Name = "Email")]
    public string Email { get; set; }

}

У меня очень простая модель просмотра. Обращаясь к этой модели, я думаю:

public class UserCreateNewViewModel
{ 
     public RegisterViewModel Register = new RegisterViewModel(); 
}

В моем контроллере у меня есть:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult UserCreateNew(RegisterViewModel model)
{

 var m = new UserCreateNewViewModel(); 

  if (ModelState.IsValid)
  {
    string registerToken =

   WebMatrix.WebData.WebSecurity.CreateUserAndAccount(model.UserName, 
   model.Password, new { Email = model.Email }, true);
   SimpleSecurity.WebSecurity.ConfirmAccount(registerToken);

    string confirmationToken =


    WebMatrix.WebData.WebSecurity.GeneratePasswordResetToken(model.UserName);

    dynamic email = new Email("ChngPasswordEmail");
    email.To = model.Email;
    email.UserName = model.UserName;
    email.baseUrl = GetBaseUrl();
    email.ConfirmationToken = confirmationToken;
    email.Send();


  }
  return RedirectToAction("UserList");
}

Я думаю, что этостранно, что я пытаюсь передать в RegisterViewModel в качестве параметра, но затем пытаюсь создать экземпляр m как UserCreateViewModel () Но я не уверен, как получить мой registerViewModel в представление через UserCreateViewModel.

View:



@model ComtrexCloudReporting.Models.UserCreateNewViewModel
@{
    ViewBag.Title = "UserCreate";
}




<div class="spacerBody">
    <h2 class="admin-home-link orange-titles orange-titles-large">@Html.ActionLink("Create Users", "AdminIndex")</h2>

    <div class="to-link navlinks"> @Html.ActionLink("Users", "UserList") | @Html.ActionLink("Manage User Role", "RoleManageUser")</div>

    <p>&nbsp;</p>
    @using (Html.BeginForm())
    {
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true)


        <fieldset>
            <legend>Registration Form</legend>
            <ol class="comtrexBlue-text">
                <li>
                    @Html.LabelFor(m => m.UserName)
                    @Html.TextBoxFor(m => m.UserName)
                </li>
                <li>
                    @Html.LabelFor(m => m.Password)
                    @Html.PasswordFor(m => m.Password)
                </li>
                <li>
                    @Html.LabelFor(m => m.ConfirmPassword)
                    @Html.PasswordFor(m => m.ConfirmPassword)
                </li>

                <li>
                    @Html.LabelFor(m => m.Email)
                    @Html.TextBoxFor(m => m.Email)
                </li>
            </ol>
            <button class="btn larger" type="submit">Create</button>
        </fieldset>

    }````

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