我在MVC for MailTo功能中创建了一个自定义html帮助器。
但是我要求将邮件主题设置为用户在另一个文本框字段中输入的值。
我不知道如何实现这一目标,有些人可以帮忙吗?
由于
Html Helper
public static MvcHtmlString SendMailTo(this HtmlHelper helper, string emailAddress, string subject, string displayText)
{
var sb = string.Format("<a href=\"{0}{1}{2}\" title=\"{1}\">{3}</a>",
CharEncode("mailto:"), CharEncode(emailAddress),CharEncode("?subject=" +subject), CharEncode(displayText));
return new MvcHtmlString(sb);
}
public static string CharEncode(string value)
{
var enc = System.Text.Encoding.Default;
var retval = "";
for (var i = 0; i < value.Length; i++)
{
retval += "&#" + enc.GetBytes(new[] { Convert.ToChar(value.Substring(i, 1)) })[0] + ";";
}
return retval;
}
查看:
<div class="form-group">
@Html.LabelFor(m => m.ApplicationId, new { @class = "col-sm-3 control-label" })
<div class="col-sm-8">
@Html.TextBoxFor(m => m.ApplicationId, new {@class = "form-control"})
</div>
</div>
<div class="form-group">
<div class="col-sm-11" style="text-align:right">
@Html.SendMailTo("info@test.com", "Password Request: ", "Request Password")
<button type="submit" class="button">Sign in</button>
</div>
</div>
答案 0 :(得分:0)
没有任何jquery code
,您无法获得该值。
您应该在texbox
(这是用作用户邮件输入的那个)上的密钥(例如)上创建一个事件
将email form
放在partial view
中,并在partial
被触发时更新event
。
信息:
A)呈现ParialView
使用Html.Partial helper
- &gt;示例here
B)要获取文本框值,您可以使用以下jquery
代码
`$('.class of your textbox').val()' //will return a string
C)更新部分视图
c.1 Place your partial view in a `div element`
c.2 Make an `ajax` call from `jquery` to an action which returns your partial view filled with data
Example for c.2:
*AJAX*
$.ajax({
type:"GET",
data:{
mail:$('.class of your textbox').val()
},
success: function(response){
$(".class of your div").html(response.Html);
}
error: function(response){
// whatever you want to do
}
});
*Controller Action*
public JsonResult(string mail)
{
var model = new CustomModel(){ Mail=mail }; // custom class to your as model for your partial view
var html = RenderPartial(...) // method you can find in the link posted below
return Json(
{
Html=html
},JsonRequestBehavior.AllowGet)
}
链接我上面写了几行 - 请点击this链接
您可以针对ajax
所需的任何事件致电textbox
。