【发布时间】:2018-06-20 02:59:45
【问题描述】:
以下三元运算符出现“只有赋值、调用、递增、递减、等待表达式和新对象表达式可以用作语句”错误:
@using (Html.BeginForm<AssetController>(
x => (Model.Id == -1 ? x.Create() : x.Edit(Model.Id) ) ,
FormMethod.Post,
new { @class = "form-horizontal", id = "save-assetType-form" }))
以下代码出现“无法将带有语句体的 lambda 表达式转换为表达式树”错误:
@using (Html.BeginForm<AssetController>(x =>
{
if (Model.Id == -1)
x.Create();
else
x.Edit(Model.Id);
}, FormMethod.Post, new { @class = "form-horizontal", id = "save-assetType-form" }))
}
有没有办法在我的 lambda 中实现简洁的条件逻辑?语法有问题。
【问题讨论】:
-
不。 BeginForm 正在解析表达式树,而不是执行它。它不明白你在做什么。将 if 逻辑移到 Html.BeginForm 调用之外。
-
想...谢谢。
标签: c# asp.net-mvc razor lambda