从控制器在 Html 内容 return 中传递模型数据

Passing model data in an Html Content return from the controller

我最近收到了客户的请求,希望创建一种方法,使他们能够直接通过管理员帐户将已完成表单的内容发送给用户。

Controller:
[HttpGet]
     public ActionResult ThisView() {
         thisModel model = new thisModel();
    emailAddress = model.EmailAddress

         return Content('<a href="mailto:"model.emailAddress"', "text/html")
        }
View:

 <div class="form-group">
            <div class="col-sm-2  raw-value"><span class="WebsiteContent"  data-ControlID="divPOC_Email" data-Component="11"></span></div>
            <div class="col-sm-5">
                @Html.TextBoxFor(m => m.EmailAddress, new { @class = "form-control", @placeholder = "sample@email.com", maxlength = 100 })
                @Html.ValidationMessageFor(m => m.EmailAddress)
            </div>
            <div class="col-sm-10 col-sm-offset-2 col-xs-12 field-validation-error userErrorMessage hidden" data-valmsg="user">Required</div>
        </div>

正在从用户输入中检索数据,并返回到已完成表单的管理员视图。该请求是将电子邮件地址作为可点击的 link 传递,这将允许他们直接从表单向用户发送电子邮件。是否可以将模型数据作为包含现有数据的原始 HTML 字符串直接传递到视图中?

你的问题非常不清楚。看起来您 可能 在这里使用子操作,但即使那样也没有任何意义。

如果您想在模型 上将 值显示为 link,您只需使用 Html.DisplayFor:

@Html.DisplayFor(m => m.EmailAddress)

电子邮件地址的默认显示模板是将其包装在 link 中。当然,这假设您用 [EmailAddress] and/or [DataType(DataType.EmailAddress)].

装饰了 EmailAddress 属性