Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用EditorFor回发后的模型为空<;字符串>;_.net_Asp.net Mvc_Razor - Fatal编程技术网

.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
    是发送进来的字符串。试试看,很确定这就是你想要的语法。我手头没有像这样使用一些简单编辑器模板的代码。@LuisFerrao
    Email.Email
    RememberMe.RememberMe
    看起来很奇怪。你能把你的模型类也包括进来吗?@jrummell我已经编辑了这个问题,你有没有试过在模板中使用
    Html.TextBoxFor
    ,而不是
    Html.TextBox
    ?@Gromer我应该传递什么表达式作为Html.TextBoxFor的参数?
    @Html.TextBoxFor(s=>s,new{@class=“textinput single line”,placeholder=o.Watermark})
    s
    是发送进来的字符串。试试看,很确定这就是你想要的语法。我手头没有像这样使用一些简单编辑器模板的代码。@LuisFerrao
    Email.Email
    RememberMe.RememberMe
    看起来很奇怪。你能把你的模型类也包括进来吗?@jrummell我已经编辑了这个问题