如何将字符串文本添加到MVC中的强类型视图中,例如,我有:
<div class="editor-field">
<%: Html.TextBoxFor(model => model.productWebsite, new { style = "width:300px;" })%>
<%: Html.ValidationMessageFor(model => model.productWebsite)%>
</div>
我想将“http://”添加到model.productWebsite
,因此当用户写入www.abc.com
时,在tryupdatemodel上,它应该在数据库中保存为http://www.abc.com。
我尝试过这样的事情:<%: Html.TextBoxFor(model => "http://" + model.productWebsite, new { style = "width:300px;" })%>
不起作用。
答案 0 :(得分:3)
对于这个问题,修改属性本身更容易:
private string _productWebsite;
public string ProductWebstring
{
get { return _productWebsite; }
set
{
_productWebsite = value;
if (!string.IsNullOrEmpty(_productWebsite) && !_productWebsite.StartsWith("http"))
{
_productWebsite = "http://" + _productWebsite;
}
}
答案 1 :(得分:1)
答案 2 :(得分:1)
当模型更新时,你应该在控制器中处理这个问题吗?
像这样:
public ActionResult Update(ModelClass model)
{
if (!model.productWebsite.StartsWith("http://")
{
model.productWebsite = "http://" + model.productWebsite
}
}
答案 3 :(得分:0)
你的答案已经击中了头部,在你的模型中做到了。但是,如果您使用https
链接或不太常见的ftp
链接,那么它们的实施方式会略有错误。
我会建议这个......
if (!model.productWebsite.Contains("://"))
{
model.productWebsite = string.format("http://{0}", model.productWebsite);
}
这将检查协议后缀,如果不存在,则附加默认值http