1

我刚开始使用 MVC,我正在尝试构建一个示例,概念证明页面用于 mvc 与 jquery-mobile 的交互。我已经为此寻找答案,但我认为我知道的还不够多,无法制定适当的查询。

在我看来,我正在尝试生成具有这样功能的输出(从 jqm 演示站点采样):

        <ul data-role="listview" data-inset="true">
        <li><a href="index.html">
            <h3>Stephen Weber</h3>
            <p><strong>You've been invited to a meeting at Filament Group in Boston, MA</strong></p>
            <p>Hey Stephen, if you're available at 10am tomorrow, we've got a meeting with the jQuery team.</p>
            <p class="ui-li-aside"><strong>6:24</strong>PM</p>
        </a></li>
        <li><a href="index.html">
            <h3>jQuery Team</h3>
            <p><strong>Boston Conference Planning</strong></p>
            <p>In preparation for the upcoming conference in Boston, we need to start gathering a list of sponsors and speakers.</p>
            <p class="ui-li-aside"><strong>9:18</strong>AM</p>
        </a></li>
    </ul>

所以,我是这样工作的:

@foreach (var item in Model) {
    <li>
          @Html.ActionLink( LargeExpandedMultiContentText, "Edit", new { id = item.SysID })
        </li>
}

我的问题,我不知道一个简单的提问方式,是,在 MVC 术语中,我如何填充变量,以便 ActionLink() 生成的 href 与我从 jqm 网站采样的样式相匹配?

我已经尝试过了,虽然它几乎可以工作,但我确信它不是“正确”的方式,尤其是当我到达将“Steven Weber”和其他字符串从项目/模型中拉出的地方......加上它对文本进行编码,但我确信有一种方法可以很容易地处理这个问题。

@foreach (var item in Model) {
    <li>
        @{ String txt =  "<h3>Stephen Weber</h3><p><strong>You've been invited to a meeting at Filament Group in Boston, MA</strong></p><p>Hey Stephen, if you're available at 10am tomorrow, we've got a meeting with the jQuery team.</p>         <p class=\"ui-li-aside\"><strong>6:24</strong>PM</p>";
        }
        @Html.ActionLink( txt, "Edit", new { id = item.SysID })
    </li>
}

谢谢,感谢您的帮助

布赖恩

4

2 回答 2

1

我不确定是否可以Html.ActionLink用来构建如此复杂的动作链接。也就是说,Html Helpers 应该只是帮助函数,通过为您提供以通常需要的方式呈现 HTML 的快捷方式,让您的生活更轻松。你不需要使用它们。在这种情况下,我认为您应该使用普通的 html 标签,并Url.Action创建正确的 URL。

如果您想将此信息包含在可枚举模型中,我可能会执行以下操作:

@foreach (var item in Model) {
    <li><a href="@Url.Action(item.Action)">
        <h3>@item.Name</h3>
        <p><strong>@item.Title</strong></p>
        <p>@item.Message</p>
        <p class="ui-li-aside"><strong>@item.Time</strong>@item.TimePeriod</p>
    </a></li>
}

注意:您正在寻找显示内容而不对其进行编码的功能是@Html.Raw

于 2012-04-29T21:53:46.157 回答
0

在回答我的另一个“半问题”时,我发现了这个资源......

http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx

我相信底部的“剃刀代表”项目会满足我的需要。

@{
  Func<dynamic, object> b = 
   @<strong>@item</strong>;
}

@b("Bold this")
于 2012-05-02T19:15:32.750 回答