2

我正在将纸质表单转换为 MVC 4 Web 表单。我的问题是一段包含链接到脚注的上标数字的文本。这就是我想要做的:

public class PaperFormModel
{
    [Display(Name = "Full paragraph of question text copied straight 
         off of the paper form<a href="#footnote1"><sup>footnote 1</sup></a> 
         and it needs to include the properly formatted superscript 
         and/or a link to the footnote text.")]
    public string Question1 { get; set; }

    // more properties go here ...
}

创建模型后,我生成了控制器和相关视图。除了显示名称中的 html 标记转换为 html 编码文本(即 <sup>1</sup>)外,一切正常。view.cshtml 中用于显示属性的代码就是自动生成的代码:

<div class="editor-label">
    @Html.LabelFor(model => model.Question1)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Question1)
    @Html.ValidationMessageFor(model => model.Question1)
</div>

我试图弄清楚如何让脚注的 html 标记正常工作,或者我的方法在某种程度上是错误的,我应该以不同的方式来做?这是我的第一个 MVC 项目,我来自 asp.net 背景。

4

1 回答 1

2

我认为您应该尝试将您的 HTML 文本移动到资源并为您的模型申请下一个代码:

public class PaperFormModel
{    
    [Display(ResourceType = typeof(PaperFormModelResources), Name = "Question1FieldName")]
    public string Question1 { get; set; }

    // more properties go here ...
}

创建资源文件:
-Resources如果您的解决方案不存在,请在该文件夹中创建该文件夹。
-Right click on this folder in solution explorer -> Add -> Resource file... -> Add -> New item并选择resource file
- 命名此文件-使用资源管理器添加具有名称和值PaperFormModelResources
的新条目。Question1FieldNameFull paragraph of question text copied straight off of the paper form<a href="#footnote1"><sup>footnote 1</sup></a> and it needs to include the properly formatted superscript and/or a link to the footnote text.

编辑: 如果结果是您的 html 标记未正确显示(它仅显示为纯文本),您可以使用以下问题的答案:

<div class="editor-label">
    @Html.Raw(HttpUtility.HtmlDecode(Html.LabelFor(model => model.Question1).ToHtmlString))
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Question1)
    @Html.ValidationMessageFor(model => model.Question1)
</div>

希望它有所帮助。

于 2013-04-05T00:06:04.083 回答