从 MVC 中的视图中删除字符列表

本文关键字:字符 列表 删除 MVC 视图 | 更新日期: 2023-09-27 18:36:25

我在显示文件夹中文件名的字段之一。我只需要显示文件名,但它也显示扩展名。

目前它像主题1一样显示.html但我希望它只显示主题我试图使用

@Html.DisplayFor(modelItem => item.ThemeName.Remove(item.ThemeName.Length-5))

但它是抛出错误

模板只能与字段访问、属性访问、 一维数组索引或单参数自定义索引器 表达 式。

从 MVC 中的视图中删除字符列表

我需要在

控制器中的字符串中进行更改,然后将列表传递给视图。所以我在控制器中使用了下面的代码。

templates[i].ThemeName = templates[i].ThemeName.Substring(0, templates[i].ThemeName.Length - 5);

模板只能与字段访问、属性访问、一维数组索引或单参数自定义索引器表达式一起使用。

帮助程序采用表达式,而不是函数。然后它处理表达式。正如消息所说,它无法处理表达式内部的函数调用。您必须为模型提供计算值,但不能计算表达式中的值。

我只需要显示文件名,但它也显示扩展名。

使用 Path.GetFileNameWithoutExtension .

您正在尝试使用代码删除int。我想你试图使用:

@Html.DisplayFor(modelItem => item.ThemeName.Remove(item.Substring(item.ThemeName.Length-5)))

更好的方法是使用 LastIndexOf

@Html.DisplayFor(modelItem => item.ThemeName.Substring(0,item.ThemeName.LastIndexOf('.'))
您可以使用

split方法执行此操作

  string fileName= "abc.123.txt";
  int fileExtPos = fileName.LastIndexOf(".");
  if (fileExtPos >= 0 ){
     fileName= fileName.Substring(0, fileExtPos);
  }

希望这有帮助

@Html.DisplayFor(modelItem => item.ThemeName.Substring(0,item.ThemeName.Length-5))

尝试子字符串而不是删除

试试这个,它可能对你有用

@Html.DisplayFor(modelItem => item.ThemeName.Splite(".")[0])