如何从其他位置在 Razor 页面中添加模型

我的模型


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>

那里很完美,但是如果我在类库项目中声明了我的实体域,会发生什么情况?


如何将那个类的地址放在我的剃刀页面上?


这句话对吗?我目前犯了一个错误


@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>


MMMHUHU
浏览 92回答 1
1回答

SMILET

所以如果你的Web项目直接引用你的DomainEntities项目那么是的,它会起作用你只需要指定完整namespace的ViewModel@model&nbsp;My.Full.Namespace.DomainEntities.ViewModel.UserRegistrationViewModel或者更清洁:@using&nbsp;My.Full.Namespace.DomainEntities.ViewModel @model&nbsp;UserRegistrationViewModel对于第二个错误,你的namespaceto the&nbsp;ViewModelis different, ie&nbsp;DomainvsDomainEntities很可能是你namespaces写错了或者拼写不完整。如果您使用某种方式Dependency Injection来注入您DomainEntities,那么如果没有一些疯狂的解决方法,您的方式将行不通。Web需要直接依赖于您的项目ViewModels。最后,我质疑你把你ViewModels放在一个单独的项目中,我会说除了最极端的情况外,你ViewModels应该在你的Web项目中。
打开App,查看更多内容
随时随地看视频慕课网APP