.net 使用EditorFor回发后的模型为空<;字符串>;
我使用的是编辑器模板,视图中的语法如下所示:.net 使用EditorFor回发后的模型为空<;字符串>;,.net,asp.net-mvc,razor,.net,Asp.net Mvc,Razor,我使用的是编辑器模板,视图中的语法如下所示: Html.EditorFor(m => m.Email) @{ var o = ViewData.ModelMetadata; } @model string @Html.TextBox(o.PropertyName, this.Model, new { @class="textinput-single-line", placeholder = o.Watermark })
Html.EditorFor(m => m.Email)
@{
var o = ViewData.ModelMetadata;
}
@model string
@Html.TextBox(o.PropertyName,
this.Model,
new { @class="textinput-single-line", placeholder = o.Watermark })
字符串编辑器模板如下所示:
Html.EditorFor(m => m.Email)
@{
var o = ViewData.ModelMetadata;
}
@model string
@Html.TextBox(o.PropertyName,
this.Model,
new { @class="textinput-single-line", placeholder = o.Watermark })
问题是,在回发时,model.Email是空的,无论我在文本框中键入什么。为什么文本框值未正确绑定到模型
编辑:这是HTML输出
<fieldset>
<legend>Log in Form</legend>
<ol>
<li>
<div class="editor-for">
<label class="label-single-line" for="Email_Email">Email</label>
<input class="textinput-single-line" id="Email_Email" name="Email.Email" placeholder="" type="text" value=""/>
<div class="clearboth"/>
</div>
</li>
<li>
<div class="editor-for">
<span class="label-single-line"/>
<input class="tickbox-single-line" id="RememberMe_RememberMe" name="RememberMe.RememberMe" type="checkbox" value="true"/>
<input name="RememberMe.RememberMe" type="hidden" value="false"/>
<label class="label-tickbox" for="RememberMe_RememberMe">Remember me?</label>
<div class="clearboth"/>
</div>
</li>
</ol>
<input type="submit" value="Log in"/>
</fieldset>
登录表格
电子邮件
还记得我吗?
在编辑器模板中使用String.Empty
或“
”。视图引擎将为您找出正确的名称
@Html.TextBox(String.Empty,
this.Model,
new { @class="textinput-single-line", placeholder = o.Watermark })
在编辑器模板中使用
String.Empty
或“”
。视图引擎将为您找出正确的名称
@Html.TextBox(String.Empty,
this.Model,
new { @class="textinput-single-line", placeholder = o.Watermark })
谢谢,但这并不能解决我的问题,而且“已计算”的名称与以前完全相同。你能发布生成的html吗?这确实是个问题。我不知道我第一次测试它时发生了什么,但这次它起了作用。这是编辑器模板中的最佳实践吗?让它自己知道名字?据我所知,是的。但我找不到支持它的参考资料。如果我找到答案,我会更新我的答案。谢谢,但这并不能解决我的问题,而且“已解决”的名称与以前完全相同。你能发布生成的html吗?这确实是个问题。我不知道我第一次测试它时发生了什么,但这次它起了作用。这是编辑器模板中的最佳实践吗?让它自己知道名字?据我所知,是的。但我找不到支持它的参考资料。如果我找到答案,我会更新我的答案。您是否尝试过在模板中使用
Html.TextBoxFor
,而不是Html.TextBox
?@Gromer我将传递什么表达式作为Html.TextBoxFor的参数?@Html.TextBoxFor(s=>s,new{@class=“textinput single line”,placeholder=o.Watermark})
s
是发送进来的字符串。试试看,很确定这就是你想要的语法。我手头没有像这样使用一些简单编辑器模板的代码。@LuisFerraoEmail.Email
和RememberMe.RememberMe
看起来很奇怪。你能把你的模型类也包括进来吗?@jrummell我已经编辑了这个问题,你有没有试过在模板中使用Html.TextBoxFor
,而不是Html.TextBox
?@Gromer我应该传递什么表达式作为Html.TextBoxFor的参数?@Html.TextBoxFor(s=>s,new{@class=“textinput single line”,placeholder=o.Watermark})
s
是发送进来的字符串。试试看,很确定这就是你想要的语法。我手头没有像这样使用一些简单编辑器模板的代码。@LuisFerraoEmail.Email
和RememberMe.RememberMe
看起来很奇怪。你能把你的模型类也包括进来吗?@jrummell我已经编辑了这个问题