仅当用户名不在数据库中时,我需要在我的视图中显示“添加为用户”链接。我在我的SQL数据访问层中有一个名为UsernameExists的方法,我想在AccountController中使用它。我会怎么做呢?逻辑应该在服务器端,并在视图上显示链接。添加用户链接ASP.NET MVC
回答
您可以从您的控制器调用UsernameExists方法,并将结果添加到ViewBag中。在你的视图中检查ViewBag,如果bool是真的(用户名已经存在),那么不要显示“Add as User”,否则显示它。
例 -
控制器:
ViewBag.usernameExists = model.UsernameExists(username);
查看:
@if(!(bool)ViewBag.usernameExists)
{
<a>Add as User</a>
//Whatever you want to display
}
谢谢,但是如果在另一个库(SQLContactLibrary)中的另一个类(SQLContactDAL)中,如何从控制器访问UsernameExists方法? – multiv123
@ multiv123在项目中添加对SQLContactLibrary的引用。那么如果它是一个静态方法:SQLContactLibrary.SQLContactDAL.UsernameExists(username); //根据类名称空间的不同,这可能会有所不同。 – xbrady
参考文献中已经有对SqlContactLibrary的引用。我将ViewBag语句放在操作方法public ActionResult CreateUser中。 – multiv123
听起来好像使用远程验证,你会想做什么,那么你就显示被隐藏的链接在页面上。你几乎可以免费获得这个MVC,那么你会做一些客户端脚本来显示/隐藏链接。 视图模型:
public CreateUserVM
{
[Required]
[Remote("UsernameExists","YourController")]
string Username { get; set; }
}
查看:
@model CreateUserVM
@Html.LabelFor(model => model.Username, "Enter User Name:")
@Html.EditorFor(model => model.Username)
控制器
public JsonResult UsernameExists(CreateUserVM user)
{
//logic to check if user name exists
}
- 1. ASP.net添加链接
- 2. ASP.NET MVC用超链接添加ModelState错误
- 3. ASP.Net MVC ListBoxFor - 让用户添加项目
- 4. 使用C#添加链接mvc
- 5. ASP.NET MVC添加css类到动作链接
- 6. 将rel和标题添加到ASP.NET MVC动作链接
- 7. 如何将CSS类名称添加到ASP.NET MVC 3 Url.Action链接?
- 8. 添加Html动作链接到ASP.NET MVC中的列表
- 9. ASP.Net MVC - 添加字段到添加链接的创建表单(不包含javascript)
- 10. 添加PARAMS到页面链接(.NET MVC)
- 11. ASP.Net MVC 3页链接
- 12. asp.net mvc超链接页面?
- 13. 如何在gridview(asp.net)中添加链接?
- 14. 将链接列添加到ASP.NET GridView
- 15. 添加链接到标签ASP.NET(VB)
- 16. ASP.Net MVC AJAX链接无法使用
- 17. ASP.net mvc链接点击调用函数
- 18. 使用asp.net mvc链接数据库
- 19. ASP.NET MVC单击后禁用Ajax链接
- 20. 使用URL(链接)在ASP.NET MVC C#
- 21. 向应用程序用户添加其他属性ASP.NET MVC
- 22. 用jQuery/JavaScript添加链接
- 23. 添加链接使用JavaScript
- 24. facebook链接加入用户
- 25. 添加类Html.ActionLink - ASP.NET MVC 3
- 26. ASP.NET MVC中不添加ModelError
- 27. 添加分页到ASP.NET MVC
- 28. 添加项目在ASP.NET MVC
- 29. 添加直接链接链接
- 30. 添加类链接
很可能需要添加一些细节到这个问题。你问是否有条件地显示客户端或服务器端? –
我认为逻辑应该在服务器端,但链接必须在视图中显示 – multiv123
您是否使用ef? – Tassadaque