【问题标题】:Change html elemts style from Controllers ActionResult in ASP.NET MVC 5从 ASP.NET MVC 5 中的控制器 ActionResult 更改 html 元素样式
【发布时间】: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 属性设置为 IsDateValidtruefalse 并在查看是否显示按钮
  • 您能否为我的案例提供一个示例答案?我知道这是非常基本的,但是...

标签: javascript jquery html asp.net-mvc asp.net-mvc-5


【解决方案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>
} 

【讨论】:

    猜你喜欢
    • 2011-05-25
    • 1970-01-01
    • 2016-01-31
    • 2018-09-20
    • 1970-01-01
    • 2012-02-25
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多