2011-08-05 47 views
1
<td>@Html.EditorFor(Model => Model.Loan)</td> 

我在视图中的开始,并在那之后,我有一个像MVC Razor视图 - 在.EditorFor(),并在的String.Format()使用型号

The interest rate for the loan is @String.Format("{0:c}", Model.Interest). 
声明

它给了我错误“‘模式’与宣言‘System.Web.Mvc.WebViewPage.Model’冲突”

我也试过

The interest rate for the loan is @String.Format("{0:c}", Model => Model.Interest). 

它误“钙不能将lambda表达式转换为类型'object []',因为它不是委托类型“

如果我删除EditorFor,它对下一个语句不会出错。

除了将模型添加到ViewBag之外,是否有任何方法可以同时执行这两种操作。

回答

1

lambda表达式中的参数名称与现有的Model属性冲突。

您需要使用不同的参数名称,例如@Html.EditorFor(m => m.Loan)

+0

谢谢,这是有效的。我认为视图页面顶部的@model是变量的声明。 – DevSharp

+0

我还记得看到“x => x.Property”的例子,如果这样的话,这是否意味着所有的Lambda表达式都指向Model?或者使用像m或x这样的所有未声明的变量会引用模型? – DevSharp

+0

也没有。 lambda表达式是一个接受名为'x'或'm'或其他参数的函数。参数的名称完全不相关。大多数MVC帮助器方法使用接收模型作为其参数的lambda表达式。 – SLaks