从 ASP.NET MVC 5 中的控制器 ActionResult 更改 html 元素样式
Posted
技术标签:
【中文标题】从 ASP.NET MVC 5 中的控制器 ActionResult 更改 html 元素样式【英文标题】:Change html elemts style from Controllers ActionResult in ASP.NET MVC 5 【发布时间】:2017-07-11 04:36:42 【问题描述】:我正在控制器中进行 if 检查
if(validDate<DateTime.Now)
//TODO
如果这个陈述是真的,我想做的是在我的视图中隐藏一个特定的按钮,否则显示它。我也在前端使用 jquery。 有人可以帮助我从控制器操作 html 元素、按钮、例如添加样式类或其他东西吗? 在这种情况下,我需要从控制器而不是 jquery 进行更改,但如果需要,我可以在之后使用 jquery。
【问题讨论】:
很简单,也是 ASP.NET MVC 的核心概念之一。我强烈建议您阅读更多文档,例如:docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/…(一旦您拥有 ViewModel,很容易将bool
属性设置为 IsDateValid
到 true
或 false
并在查看是否显示按钮
您能否为我的案例提供一个示例答案?我知道这是非常基本的,但是...
【参考方案1】:
您需要使用模型(也称为 ViewModel),@thomashaid 已经给您评论了一篇有用的文章:Views And ViewModels。
在 MVC 项目的“模型”文件夹中创建一个类。像这样:
public class MyViewModel
public bool ShowButton get; set;
然后在您的控制器中,创建ViewModel
类的对象并将相应的值分配给ShowButton
属性。然后将 ViewModel 传递给返回的视图:
public ActionResult MyAction()
var myViewmodel = new MyViewModel();´
if(validDate < DateTime.Now)
myViewModel.ShowButton = true;
return View(myViewModel);
最后,在视图中使用 razor 语法来操作将返回给客户端的 HTML 代码:
@model MyViewModel
@if (Model.ShowButton)
<Button>now you see me</Button>
【讨论】:
以上是关于从 ASP.NET MVC 5 中的控制器 ActionResult 更改 html 元素样式的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.Net MVC 5 中将 javascript 数组从视图传递到控制器