Razor中的@HtmlTextBox Readonly属性

时间:2017-07-19 12:19:11

标签: c# asp.net-mvc razor

我的Razor页面上的@HtmlTextBox出现问题。

我希望从另一个@HtmlTextBox填充该框,并且不可编辑,因为我希望将这些框导出到Excel文件。

<table style="border:none">
    <tr>
        <td><label class="editor-label">Start Date:</label></td>
        <td>@Html.TextBox("StartDate", new { @readonly = "readonly" })</td>
            @*<td>@Html.TextBox("StartDate"), new { @class = "date-picker" })</td>*@
    </tr>
    <tr>
        <td><label class="editor-label">End Date:</label></td>
    <td>@Html.TextBox("EndDate", new { @readonly = "readonly" })</td>
    </tr>
    <tr>
        <td><label class="editor-label">Supplier Company Name</label></td>
        <td>@Html.TextBox("Company")</td>
    </tr>
</table>

有了它,它只是&#34; @readonly =&#34; readonly&#34;&#34;在我不想要的搜索框中,它仍然可以编辑。

2 个答案:

答案 0 :(得分:2)

您使用了错误的重载。 TextBox(String, object)期望值为第二个参数。

你想要的是TextBox(String, object, object),其中第三个参数是HTML属性:

@Html.TextBox("EndDate", "", new { @readonly = "readonly" })

答案 1 :(得分:1)

您必须在HTML帮助器中添加null参数:

现在你的助手应该是这样的:

@Html.TextBox("EndDate",null, new { @readonly = "readonly" })


And your code will be look like this :

<table style="border:none">
            <tr>
            <td><label class="editor-label">Start Date:</label></td>
            <td>@Html.TextBox("StartDate",null, new { @readonly = "readonly" })</td>
                @*<td>@Html.TextBox("StartDate"), new { @class = "date-picker" })</td>*@
        </tr>
            <tr>
                <td><label class="editor-label">End Date:</label></td>
            <td>@Html.TextBox("EndDate", null,new { @readonly = "readonly" })</td>
            </tr>
            <tr>
                <td><label class="editor-label">Supplier Company Name</label></td>
                <td>@Html.TextBox("Company")</td>
            </tr>
        </table>

干杯!!