首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该在asp.net中分开登录和注册的ViewModel吗?

在ASP.NET中,是否应该将登录和注册分开使用ViewModel取决于具体的需求和设计。以下是一些考虑因素:

  1. 功能分离:如果登录和注册的逻辑和数据完全独立,并且在用户界面上也没有共享的字段,那么将它们分开使用ViewModel可能更合适。这样可以避免在一个ViewModel中混合不相关的属性和方法。
  2. 代码复用:如果登录和注册的逻辑和数据有一些共享的部分,例如用户信息输入框、验证逻辑等,那么使用一个共享的ViewModel可能更方便。这样可以减少重复代码,并且在维护和扩展时更容易管理。
  3. 界面设计:如果登录和注册的界面布局和样式完全相同,只是逻辑和数据不同,那么使用一个共享的ViewModel可以简化前端开发。通过在视图中使用相同的ViewModel,可以减少重复的HTML和CSS代码。

总之,是否应该在ASP.NET中分开使用登录和注册的ViewModel取决于具体情况。根据功能分离、代码复用和界面设计等因素,可以选择最适合的方式来组织和管理ViewModel。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用EF6简实现多租户应用

关键是现实方式必须对开发人员来说是透明,不需要关注这个字段信息,由后台或是封装在基类实现数据筛选更新。...基本原理 从新用户注册时就必须指定用户TenantId,例子是用CompanyId,公司信息做为TenantId,哪些用户属于不同公司,每个用户将来只能修改查询属于本公司数据。...接下来就是用户登录时候获取用户信息时候把TenantId保存起来,asp.net mvc(不是 core) 是通过 Identity 2.0实现认证授权,这里需要重写部分代码来实现。...最后用户对数据查询/修改/新增时把用户信息TenantId,这里就需要设定一个Filter(过滤器)每次SaveChange插入TenantId 如何实现 第一步,扩展 Asp.net Identity...); 53 } 54 } 第三步 读取登录用户TenantId 在用户查询新增修改时把TenantId插入到表,这里需要引用 Z.EntityFramework.Plus,这个是免费开源一个类库

1K10
  • 用最简单方式在ASP.NET Core应用实现认证、登录注销

    本篇文章提供了一个极简实例让读者体验如何在ASP.NET Core应用实现认证、登录注销。...ASP.NET Core应用认证系统旨在构建一个标准模型来完成针对请求认证以及与之相关登录注销操作。...接下来我们就通过一个简单实例来演示如何在一个ASP.NET Core应用实现认证、登录注销功能。...前面提及,注册登录注销路径是基于Cookie认证方案采用默认路径,所以调用ChallengeAsync方法时根本不需要指定重定向路径。下图所示就是作为应用主页在浏览器上呈现效果。 ?...四、登录 登录与注销分别实现在SignInAsync方法SignOutAsync方法,我们采用是针对“用户名 + 密码”登录方式,所以可以利用静态字段_accounts来存储应用注册账号。

    3.5K30

    一步一步创建ASP.NET MVC5程序(八)

    ** 还是回到我们正题,开始我们今天系列教程:《一步一步创建ASP.NET MVC5程序Repository+Autofac+Automapper+SqlSugar》 本文知识要点 用户注册/登录功能设计与实现...好了,关于注册登录逻辑以及页面都完成了,那么运行项目,打开注册页面:http://localhost:54739/account/register,具体注册请自行体验: ?...以上,我们只完成了注册登录基本功能,接下来我们来体验一下简单权限访问,在本期教程之前,我们: http://localhost:54739/home/index 以及 http://localhost...是不是被重定向到了登录页面,要求你登录? 这就对了,输入你刚才注册用户名密码,登录后,系统会重新带你到:http://localhost:54739/home/index 页面。...OK,今天这期关于用户注册登录功能就介绍到这里,本期只实现了简单功能,在后续教程中将重构封装相应功能代码,敬请期待。。。 如果你喜欢Rector本系列文章,请为点个大大赞。

    1.3K60

    ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证基于角色授权,中级篇

    在前一篇文章介绍了ASP.NET Identity 基本API运用并创建了若干用户账号。...本文示例,你可以在此下载预览: 点此进行预览 点此下载示例代码 探索身份验证与授权 在这一小节将阐述证明ASP.NET 身份验证授权工作原理运行机制,然后介绍怎样使用Katana...为了更好去理解ASP.NET 表单身份验证与授权机制,搬出几年前一张旧图,表示HttpApplication 19个事件,它们分别在HttpModule 中被注册,这又被称为ASP.NET 管道(...进行注册,当请求经过ASP.NET Pipeline时,由ASP.NET Runtime 触发它,在该事件,它会验证并解析该Cookie为对应用户对象,它是一个实现了 IPrincipal接口对象...为此,添加了两个ViewModel,RoleEditModelRoleModificationModel,分别代表编辑时展示字段表单 Post时传递到后台字段: public class RoleEditModel

    3.5K60

    RxSwift 实战操作【注册登录

    登录界面 首先我们在storyboard添加登录界面,如下,当点击登录时候,就跳转到登录界面。 ?...创建一个LoginViewController.swiftLoginViewModel.swift文件,有了上述注册功能讲解,相信登录功能也很容易了。...Driver类型,第一个是username处理结果流,第二个是登录按钮是否可用流,第三个是登录结果流; 下面的init方法,看着刚才注册界面不一样。...这种写法参考了官方文档写法,让大家知道有这种写法。但是并不推荐大家使用这种方式,因为如果Controller元素很多的话,一个一个传过来是很可怕。...将viewModel对象进行相应监听,如果是Driver序列,我们这里不使用bingTo,而是使用Driver,用法bingTo一模一样。

    4.9K60

    ASP.NET Core 2.0 建立规范 REST API -- 预备知识 (2) + 准备项目

    Debug = 1, 也是在调试使用, 应该在生产环境禁用, 但是遇到问题需要调试可以临时启用. Information = 2, 用来追踪应用程序总体流程....记录日志信息是可以带参数, 使用消息模板(也就是消息主题参数分开), 格式如下: ? 同样也支持字符串插值: ? 第二种方式代码可读性更强一些, 而且它们输出结果没有什么区别: ?...通过消息模板方式(消息参数分开方式), 日志提供商可以实现语义日志或叫做结构化日志, 它们可以把参数单独出入到日志系统里面进行单独存储, 不仅仅是格式化日志信息....注意: 该页面之应该在开发时启用, 因为你不想把这些敏感信息在生产环境暴露....所以我会在MyRestful.Api项目里建立一个Resources文件夹, 并创建一个类叫做CountryResource.cs (以前把它叫ViewModel或Dto, 在这里叫它Resource

    1.1K00

    项目配置

    Debug = 1, 也是在调试使用, 应该在生产环境禁用, 但是遇到问题需要调试可以临时启用. Information = 2, 用来追踪应用程序总体流程....通过消息模板方式(消息参数分开方式), 日志提供商可以实现语义日志或叫做结构化日志, 它们可以把参数单独出入到日志系统里面进行单独存储, 不仅仅是格式化日志信息....注意: 该页面之应该在开发时启用, 因为你不想把这些敏感信息在生产环境暴露....所以我会在MyRestful.Api项目里建立一个Resources文件夹, 并创建一个类叫做CountryResource.cs (以前把它叫ViewModel或Dto, 在这里叫它Resource...==> Resource Resource ==> Domain Model: 当然了, 也可以做一个配置文件, 还是做一个吧: 然后在Startup里面注册AutoMapper即可:

    83220

    一步一步创建ASP.NET MVC5程序(五)

    前言 Hi,大家好,是Rector 时间飞逝,一个星期又过去了,今天还是星期五,Rector在图享网继续跟大家分享系列文本:一步一步创建ASP.NET MVC5程序[Repository+Autofac...关注一层通常关注另一层发生冲突,因此对象-对象间映射来隔离模型model,这样就只会影响每一层关注类型。...AutoMapper配置 为了解决方案目录结构更加清晰,这里把视图实体放到了一个单独项目中。...:CreatedAt,PublishedAt,IsDeleted 类型都领域模型Post.cs实体类数据类型不同了。.../tag/v1.5 本文学习到此结束,本系列未完待续,我们下期再见…… 如果你喜欢Rector本系列文章,请为点个大大赞,以支持Rector在后续写作更有基(激)情,哈哈。。。

    1.7K100

    七天学会ASP.NET MVC (四)——用户授权认证问题

    小编应各位要求,快马加鞭,马不停蹄终于:七天学会 Asp.Net MVC 第四篇出炉,在第四天学习,我们主要了学习如何在MVC如何实现认证授权等问题,本节主要讲了验证错误时错误值,客户端验证...ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用用户角色管理 七天学会ASP.NET MVC...在本系列第一讲,我们了解了Asp.NetMVC意义,知道MVC是Asp.net一部分,MVC继承了ASP.NET所有特征,包含表单认证。 先来了解ASP.NET是如何进行Form认证。...还有很多类似的属性如HttpGet,HttpPutHttpDelete属性. ? FormsAuthentication.SetAuthCookie是必须写? 是必须写。...实验18——在View显示UserName 在本实验,我们会在View显示已登录用户名 1.

    8.7K50

    大升级!支持CQRS|异步订阅发布-CodeWF.EventBus

    CQRS,全称Command Query Responsibility Segregation,是一种软件架构模式,旨在通过将系统命令(写操作)查询(读操作)职责进行分离,来提高系统性能、可伸缩性响应性...使用了 IOC 如果是 ASP.NET Core 程序,比如 MVC、Razor Pages、Blazor Server 等模板程序,在Program添加如下代码: // .... // 1、注册事件总线...UseEventBus方法会将上一步注入类通过 IOC 容器获取到实例,将实例事件处理方法注册到事件管理队列中去,待收到事件发布时,会从事件管理队列查找事件处理方法并调用,达到事件通知功能。...未使用 IOC 默认 WPF、Winform、AvaloniaUI、控制台程序默认未引入任何 IOC 容器,这里不用做事件服务注册操作,功能使用上使用IOC只差自动订阅功能,其他功能一样。...定义事件 在这里我们使用 CQRS 来完成我们程序业务逻辑,在 CQRS 模式我们查询其它业务操作是分开

    12210

    使用 Architecture Component 实现 MVVM 正确姿势

    在 MVVM ViewModel 充当 View Model 之前数据中转逻辑处理角色 image.png ViewModel 生命周期 ViewModel 生命周期创建 ViewModel...,ViewModel 生命周期是比 Activity 长,因此我们不应该在 ViewModel 持有 View 或者任何 Activity context 引用关系类,否则会引发内存泄露风险...参考官博:ViewModel LiveData 模式反模式 image.png 各层之间职责边界 ViewModel LiveData 是提供给 View 监听,View 应该只需要关系...,逻辑代码应该在 ViewModel 处理好再通知 View 直接更新 UI,View 只需要关系如何更新 UI 以及把用户交互事件发送给 ViewModel 即可,这种模式叫做 Passive View...ViewModel Repo 之前之间通信,要注意在适当时候反注册

    78220

    Asp.Net MVC3 简单入门第一季(二)详解Asp.Net MVC3项目

    前言 在上一篇文章Asp.Net MVC3 简单入门第一季(一)环境准备简单介绍了Asp.Net MVC3项目的安装第一个Asp.Net MVC3项目的基本情况。...看下表所示就是Asp.Net MVC3各个文件夹作用。...我们没有退路了,呵呵,当然个人也非常喜欢JQuery】 /Models 主要存放ViewModel类【当然这个不是严格这样要求,而是推荐你这么做。】...而Global.asax则在应用启动时候注册了全局Area【区域,后面会相信讲解】、全局Filter、路由等。...在Action我们一般会从业务Façade层取出数据,然后将传输层数据转换成ViewModel再交给View视图引擎渲染,最终生成Html字节流写回客户端。

    95310

    一步一步创建ASP.NET MVC5程序(九)

    前言 童鞋们,大家好 是专注.NET开发者社区建设实践者Rector。 首先,为自己间隔了两个星期五再更新本系列文章找个不充分理由:Rector最近工作,家庭各种事务所致,希望大家谅解。...响应式网站首页布局与制作 文章列表展示 文章详情页面 前端布局与制作 响应式网站首页布局与制作 在以本文之前系列文章页面,我们网站首页以及文章列表页面都没有应用样式,本文将给大家分享首页制作...: @model IEnumerable 文章仓储接口实现 打开文件[IPostRepository.cs],在其中新增接口方法...]文章视图文件[...TsBlog\src\Libraries\TsBlog.ViewModel\Post\PostViewModel.cs]添加一个新属性:Summary,此时PostViewModel...TsBlog\document\scripts\mysql\v1.9\ 如果你喜欢Rector本系列文章,请为点个大大赞。

    2.7K50

    正确认识 MVCMVPMVVM

    后来随着微软 ASP.NET MVC Framework 出现,MVC 也开始被广泛应用于 Web 程序。...再来看看我们现在所熟知 MVP 结构图: ? 看到这关系图,你还会发现,这前篇文章说变种 MVC 不是一模一样?没错,关系图的确是一样,但背后实现和角色划分却不太一样,我们后面就讲。...LoginView LoginActivity 都明确划分到 View 层,LoginView 定义了登录流程涉及到几个UI层接口方法,包括显示隐藏加载框,以及登录失败时错误信息展示,登录成功后处理...(ViewModel —> View) 双向绑定:ViewModel 与 View 绑定之后,如果 View ViewModel 任何一方变化后,另一方都会自动更新,这就是双向绑定。...variable 标签定义就是我们 LoginViewModel,将其命名为 vm,然后就可以在下面的控件引用它。

    2.7K33

    ASP.NET Core 中间件详解及项目实战

    那么中间件就是在应用程序管道一个组件,用来拦截请求过程进行一些其他处理响应。中间件可以有很多个,每一个中间件都可以对管道请求进行拦截,它可以决定是否将请求转移给下一个中间件。...asp.net core 提供了IApplicationBuilder接口来让把中间件注册asp.net管道请求当中去,中间件是一个典型AOP应用。...,那我有一些比如对输出结果进行格式化啦,对请求ViewModel进行数据验证啦,肯定就是用Filter无疑了。...理解是在我们应用程序当中和业务关系不大一些需要在管道事情可以使用,比如身份验证,Session存储,日志记录等。其实我们 asp.net core项目中本身已经包含了很多个中间件。...以平台子系统举例,我们正在开发一个子系统,其中用户信息,登录注册等功能是放在平台上,这是一个跨多语言系统,平台是Java语言开发,用户在访问子系统一些页面的时候需要验证是否登录,另外一些页面是不需要验证是否登录

    67520

    一步一步创建ASP.NET MVC5程序(十)

    前言 朋友们, 大家好,还是Rector,写ASP.NET MVC 5系列文章 [一步一步创建ASP.NET MVC5程序Repository+Autofac+Automapper+SqlSugar...所以本文为大家分享内容是: 母版页 部分视图 母版页概述 ASP.NET MVC母版页类似于传统Webform.master母版页面,它可以让我们在做WEB应用程序开发时页面布局结构更加规范化...ASP.NET MVC 5 WEB应用程序开发,我们通常使用视图引擎为:Razor,这个视图引擎母版页面默认位于网站目录[/Views/Shared/_Layout.cshtml],在具体视图页面...在这个母版页将共用区域、资源以及动态页面内容区域都分别标记出来了。 其中,动态内容区域是用@RenderBody()来标记。...(就站一旁看着,不说话) 好了,Rector把母版页部分视图给大家作了一个初步分享,接下来我们把文章详情页面也应用上母版页。

    1.9K110

    在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    如果你了解ASP.NET MVC路由注册,可能觉得奇怪:注册路由模板并没有表示目标Action路由参数,ASP .NET Web API如何根据请求确定哪个Action方法应该被调用呢?...但是这个默认注册注册名称为“WebDAVModule”)会拒绝HTTP方法为PUTDELETE请求,如果我们站点不需要提供针对WebDAV支持,解决这个问题最为直接方式就是利用如下配置将注册...虽然这仅仅是一个简单Web应用,但是刻意使用了3个主流Web前端开发框架,它们分别是jQuery、BootstrapKnockOut,这三个框架使用体现在页面引用CSSJavaScript...以通过KO实现MVVM为例,其核心是“绑定”,个人又将其分为“数据绑定”“行为绑定”。...对于后者,其主要体现在具有如下定义View Model上,我们将它定义在独立JavaScript文件(viewmodel.js)

    4.6K110
    领券