Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Webgrid中“”和“”类型的操作数上的运算符“+”不明确_Html_Sql_Asp.net Mvc_Concatenation_Webgrid - Fatal编程技术网

Html Webgrid中“”和“”类型的操作数上的运算符“+”不明确

Html Webgrid中“”和“”类型的操作数上的运算符“+”不明确,html,sql,asp.net-mvc,concatenation,webgrid,Html,Sql,Asp.net Mvc,Concatenation,Webgrid,我想在webgrid列中显示一些连接的字段,并在连接的字段具有空值时收到此错误 SQL查询: SELECT *, T.Name AS Title, PT.Name AS PropertyType FROM Properties AS P LEFT OUTER JOIN Owners_Properties AS OP ON OP.PropertyId = P.PropertyId LEFT OUTER JOIN Owners AS O ON O.OwnerId = OP.OwnerId

我想在webgrid列中显示一些连接的字段,并在连接的字段具有空值时收到此错误

SQL查询:

 SELECT *, T.Name AS Title, PT.Name AS PropertyType
 FROM Properties AS P
 LEFT OUTER JOIN Owners_Properties AS OP ON OP.PropertyId = P.PropertyId
 LEFT OUTER JOIN Owners AS O ON O.OwnerId = OP.OwnerId
 LEFT OUTER JOIN PropertyTypes AS PT ON PT.PropertyTypeId = P.PropertyTypeId
 LEFT OUTER JOIN Titles AS T ON T.TitleId = O.TitleId      
 WHERE P.CondoId=@0 AND P.PropertyId=@1
HTML标记:

propertyGrid.Column("Propriétaire", format: (item) => item.Title+ ' ' + item.FirstName+ ' ' + item.LastName)
当“两个连续字段”为空时会出现此问题

我尝试用以下方式修改HTML代码:

 propertyGrid.Column("Owner", format: (item) => @Html.Raw((item.Title=!null) ? (item.Title+ ' ') : "")+ (item.FirstName=!null) ? (item.FirstName+ ' ') : "")+ ((item.LastName=!null) ? item.LastName : "")))

也可以避免返回这些空值,但在SQL查询端,我也没有成功。生活是艰难的-

我建议您使用视图模型并在其上添加一个属性,该属性将格式化值:

public string FormattedOwner
{
    get
    {
        return string.Format("{0} {1} {2}", Title, FirstName, LastName);
    }
}
现在,在您的视图中,只需使用此新的视图模型属性将列绑定到:

propertyGrid.Column(columnName: "FormattedOwner", header: "Propriétaire")
如果您不想遵循良好实践并使用视图模型,您可以始终将视图转换为意大利面代码:

propertyGrid.Column(
    header: "Propriétaire",
    format: @<text>@string.Format("{0} {1} {2}", item.Title, item.FirstName, item.LastName)</text>
)    

替换=!由!=在HTML标记中

在SQL中,您可以使用ISNULL SQL Server、IFNULL MySQL或其他类似的数据库将NULL替换为

例如:
选择ISNULLT.Name作为标题,…

还没有完全理解这一切,但是第一次读它不应该是=!是在你的HTML中?你是对的!!我真傻!关于第二部分,你有答案吗?如何用title、firstname和lastname上的值替换空值?请注意,标题来自一个联接的表Titles.Name,其中TitleId为键