字符串中的Razor变量无法正确呈现

时间:2012-08-30 18:19:32

标签: asp.net-mvc asp.net-mvc-3 razor

@using (Html.BeginForm())
{
    int controlWidth=250;
    @Html.TextBoxFor(m => m.studentFirstName, new { style = "width:@(controlWidth)px;" })

此代码呈现为

            <input data-val="true" data-val-required="The Student First Name field is required." id="studentFirstName" name="studentFirstName" style="width:@(controlWidth)px;" type="text" value="" />

可以理解,我希望它呈现为

            <input data-val="true" data-val-required="The Student First Name field is required." id="studentFirstName" name="studentFirstName" style="width:250px;" type="text" value="" />

我看到像ASP.NET MVC Razor Concatenation这样的帖子表明这种做法是正确的。我有什么想法吗?

1 个答案:

答案 0 :(得分:5)

我认为你不能那样做。内联模板只能在<li style="@(controlWidth)">之类的HTML中使用,或者如果您的方法支持内联模板。有关如何编写支持内联模板的方法,请参阅http://vibrantcode.com/blog/2010/8/2/inside-razor-part-3-templates.html/