Как добавить модель на страницу Razor из другого места - PullRequest
0 голосов
/ 26 апреля 2019

Моя модель

public class UserRegistrationViewModel
{
    public string Description { get; set; }
}

Индекс

@model UserRegistrationViewModel

<form asp-controller="Demo" asp-action="RegisterTextArea" method="post">
    <textarea asp-for="Description"></textarea>
    <button type="submit">Test</button>
</form>

Идеально, но что произойдет, если мои Entity Domains объявлены в проекте библиотеки классов?

Какя могу разместить адрес этого класса на своей странице бритвы?

это предложение правильно?Я сейчас делаю ошибку

@model DomainEntities.ViewModel.UserRegistrationViewModel 

Другой пример Я сейчас делаю ошибку

@model Domain.ViewModel.UserLogInViewModel

@{
    ViewBag.Title = "Login";
}

<h2>Login</h2>

<form method="post" asp-controller="Account" asp-action="Login"
      asp-route-returnurl="@Model.ReturnUrl">
    <div asp-validation-summary="ModelOnly"></div>

    <div>
        <label asp-for="Username"></label>
        <input asp-for="Username" />
        <span asp-validation-for="Username"></span>
    </div>

    <div>
        <label asp-for="Password"></label>
        <input asp-for="Password" />
        <span asp-validation-for="Password"></span>
    </div>

    <div>
        <label asp-for="RememberMe"></label>
        <input asp-for="RememberMe" />
        <span asp-validation-for="RememberMe"></span>
    </div>

    <div>
        <input type="submit" value="Login" />
    </div>
</form>

1 Ответ

1 голос
/ 26 апреля 2019

Так что, если ваш Web проект напрямую ссылается на ваш DomainEntities проект, тогда да, он будет работать, вам просто нужно указать полный namespace для ViewModel

@model My.Full.Namespace.DomainEntities.ViewModel.UserRegistrationViewModel

или, возможно, более чистый:

@using My.Full.Namespace.DomainEntities.ViewModel
@model UserRegistrationViewModel

для второй ошибки ваш namespace на ViewModel отличается, т. Е. Domain против DomainEntities Вероятно, что ваши namespaces неверны или написаны не полностьюout.

Если вы используете какой-то Dependency Injection для инъекции DomainEntities, то без каких-либо сумасшедших обходных путей ваш путь не будет работать.Web нужна прямая зависимость от проекта с вашим ViewModels.

Наконец, я задам вопрос о том, чтобы вы поместили ваш ViewModels в отдельный проект, я бы сказал, что для всех, кроме самого крайнего случаяСценарии, ваш ViewModels должен быть в вашем Web проекте.

...