为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
MMMHUHU 2022-12-31 13:23:47
我的模型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>
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

所以如果你的Web项目直接引用你的DomainEntities项目那么是的,它会起作用你只需要指定完整namespaceViewModel

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

或者更清洁:

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

对于第二个错误,你的namespaceto the ViewModelis different, ie DomainvsDomainEntities很可能是你namespaces写错了或者拼写不完整。

如果您使用某种方式Dependency Injection来注入您DomainEntities,那么如果没有一些疯狂的解决方法,您的方式将行不通。Web需要直接依赖于您的项目ViewModels

最后,我质疑你把你ViewModels放在一个单独的项目中,我会说除了最极端的情况外,你ViewModels应该在你的Web项目中。


查看完整回答
反对 回复 2022-12-31
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信