【问题标题】:How to read HTML tag values in C# Razor View如何在 C# Razor 视图中读取 HTML 标记值
【发布时间】:2012-04-13 22:04:24
【问题描述】:

我的跨度中有一个值,我想与 C# 变量进行比较,这可能吗?如果是,那么如何??

我可以在 Jquery 变量中获取 Html 标记值,但仍然无法将其与 Razor View 中的 C# 变量值进行比较。

HTML Tag: <span style="visibility: hidden" id="category">"Some Value"</span>

C# Razor 语法:

@foreach (var item in Model.InventoryViewModel.Items.Where(i => i.Category == "HTML Value"))
            {
// Some Code
}

我正在尝试将 span 中的值与 C# 变量匹配,请提供任何帮助建议:\ !!

【问题讨论】:

    标签: javascript jquery html c#-4.0 razor


    【解决方案1】:

    不知道你在做什么,但你可以使用变量或其他东西,甚至更好的是视图模型上的属性。无论如何,Razor 代码在服务器上运行,HTML 在客户端上,所以谈论在 Razor 中比较 HTML 值就像鸡与蛋的问题。

    所以你可以用你的视图模型的值来生成你的 pan 标签:

    <span style="visibility: hidden" id="category">
        @Model.SomeProperty
    </span>
    

    然后你比较:

    @foreach (var item in Model.InventoryViewModel.Items.Where(i => i.Category == Model.SomeProperty))
    {            
        // Some Code
    }
    

    但更好的是在控制器操作上执行此操作并直接过滤集合,以便您在视图中要做的就是:

    @foreach (var item in Model.InventoryViewModel.FilteredItems)
    {
        // Some Code
    }
    

    使用模板甚至更短:

    @Html.EditorFor(x => x.InventoryViewModel.FilteredItems)
    

    【讨论】:

    • 问题是我在 Viewpage 上有两个模型。我不匹配同一模型的属性。
    • 在这种情况下,只需调整您的视图模型,使其符合您的视图要求。这就是视图模型的设计目的。
    • 我在模型 A 中有 100 个项目,我从中选择一个,我试图根据我从模型 A 中选择的值从模型 B 中获取值。我拥有所有项目存在于 Viewpage 的两个模型中。希望这可以给你一个更好的想法,我正在尝试做什么。
    • 是的,由于某些原因,我不想将页面发回。 :\ 否则我可以简化很多问题。
    • 我只能说你应该改变你传递给这个视图的视图模型的结构。
    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 2021-11-21
    • 1970-01-01
    • 2023-03-31
    • 2015-05-07
    • 1970-01-01
    • 2013-01-15
    • 2011-06-09
    相关资源
    最近更新 更多