我可以通过tds填写模型的字段而无需javascript

时间:2013-09-16 16:13:33

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

是否可以按表tds的内容填写模型的字段。当然不使用javascript。 我想传递一个模型来查看和获取tds的内容。 像文本框这样的东西:@ Html.TextBoxFor(m => m.username)

我有可能为tds做这样的事情吗?我能用什么代替tds?

                    <tr class="darckTr">
                        <td>code :</td>
                        <td id="tdPobox" colspan="3">12345</td>
                        <td>Email :</td>
                        <td id="tdEmail">example@yahoo.com</td>
                    </tr>

1 个答案:

答案 0 :(得分:0)

听起来你想要的是一个显示模板。创建.cshtml视图,例如“ContactDetails.cshtml”:

@model ContactDetails

<tr class="darckTr">
    <td>code :</td>
    <td id="tdPobox" colspan="3">@Model.PoBox</td>
    <td>Email :</td>
    <td id="tdEmail">@Model.Email</td>
</tr>

如果部分视图的文件名与模型中的类型匹配,则会自动使用。否则,您有几个选择。在模型上指定partial,例如:

public class MyWrappingClass
{
    [UIHint("_ContactDetails")]
    public ContactDetails Details { get; set; }
}

然后在你看来这样做:

@model MyWrappingClass

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

或者,只需在视图中直接指定模板:

@model MyWrappingClass

@Html.DisplayFor(m => m.Details, "_ContactDetails")

Brad Wilson写了一篇关于模板的好博客文章,包括如何解决这些问题,在这里:

http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

修改

如果要在POST上保留这些值,则需要包含值的输入元素。在您的情况下,执行此操作的最佳方法是使用隐藏字段,例如:

@Html.HiddenFor(m => m.Username)