【问题标题】:Passing model data in an Html Content return from the controller在控制器返回的 Html 内容中传递模型数据
【发布时间】:2017-06-28 22:40:03
【问题描述】:

我最近收到一位客户的请求,要求创建一种方法,允许他们从已完成表单的内容中直接通过管理员帐户向用户发送电子邮件。

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>

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

【问题讨论】:

  • "&lt;a href=\"mailto:" + model.EmailAddress + "\"&gt;?
  • @CodeCaster 我试试看
  • 有人能告诉我为什么这被否决了吗?
  • 您的问题不清楚。请逐步解释您想要发生的事情。不要只显示一个不符合您要求的非编译 sn-p,解释整个场景。用户在文本框中输入他们的电子邮件地址,然后呢?
  • 很可能是因为您的问题不清楚。这似乎也是一个 XY 问题,您要问的是如何解决您找到的解决方案,而不是您真正需要解决的实际问题。

标签: html asp.net-mvc asp.net-mvc-4 razorengine


【解决方案1】:

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

如果你想在你的模型上显示作为链接,你只需要使用Html.DisplayFor:

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

电子邮件地址的默认显示模板是将其包装在链接中。当然,这假设您使用 [EmailAddress] 和/或 [DataType(DataType.EmailAddress)] 装饰了您的 EmailAddress 属性。

【讨论】:

  • 我已经编辑了问题,以反映问题。目标是将用户输入的现有电子邮件地址返回到管理员帐户,然后管理员帐户将能够直接从表单中的该位置向用户发送电子邮件。
猜你喜欢
  • 2022-01-15
  • 1970-01-01
  • 2019-12-07
  • 2014-03-16
  • 2019-04-26
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
相关资源
最近更新 更多