【问题标题】:How to inject data into objects using Razor in WebMatrix?如何在 WebMatrix 中使用 Razor 将数据注入对象?
【发布时间】:2012-12-14 18:37:55
【问题描述】:

我最近一直在使用 WebMatrix,我一直在想是否可以将数据注入到对象中。

我曾经使用过 Struts2,如果您熟悉它,如果您有像 <s:textfield name="model.property" .../> 这样的输入,则插入该文本字段的值将被注入到模型对象中,或者模型对象中的值将是在页面加载时注入到文本字段中(这取决于处理到网页中的逻辑)。

到目前为止,在 WebMatrix 中,我已经看到了这种类型的数据注入 value="@Request.QueryString["searchGenre"]",您可以在其中访问 Razor 代码中的变量的值并将其分配给 html 控件,但是可以反过来吗?我可以在 html 控件内的 Razor 代码中放置对对象的引用,并在提交页面时将值注入到对象中吗?

我知道我可以访问请求中的查询字符串值,但我想知道这种方法是否可行。

那么可以吗?还是我可以采取不同的方法?我想缩短我的编码时间,所以我愿意接受建议。

感谢您的帮助。

【问题讨论】:

    标签: web-applications data-binding razor webmatrix


    【解决方案1】:

    是的,您可以为 HTML 表单控件提供任何您喜欢的默认值。约定是将值设置为相应的 Request.Form 或 QueryString 值,这样如果表单验证失败,用户提供的值会被持久化:

    <input type="text" name="color" value="@Request["color"]" />
    

    但是,您可以将其设置为默认值,并在表单发布时将其重置,以便您获取用户提供的任何内容:

    @{
        var color = Request["color"].IsEmpty() ? "Red" : Request["color"];
    }
    <input type="text" name="color" value="@color" />
    

    或者,如果您想使用Html Helpers for forms 来获得更“敏捷”的感觉:

    @{
        var color = Request["color"].IsEmpty() ? "Red" : Request["color"];
    }
    @Html.TextBox("color", color)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      相关资源
      最近更新 更多