我需要在控制器中获取 Guid.Empty 并将其传递给视图。 我尝试使用ViewBag,我在控制器中添加了此代码
public class QuestionnaireController : Controller
{
//....
ViewBag.EmptyGuid = Guid.Empty;
}
并在视图中添加了此代码
if (rowobject[6] == ViewBag.EmptyGuid) { //...}
但是我在控制器
中遇到了一些错误 Error 1 Invalid token '=' in class, struct, or interface member declaration
Error 2 Invalid token ';' in class, struct, or interface member declaration
出了什么问题以及如何使其工作?
UPD
我在控制器中更改了代码(我在内部方法中添加了ViewBag.EmptyGuid
)
[HttpGet]
public ActionResult QuestionnaireIndex()
{
ViewBag.EmptyGuid = Guid.Empty.ToString();
FillViewBags();
return View();
}
在我看来,这是脚本
@section scripts{
<script type="text/javascript"> function buttonize(cellvalue, options, rowobject) {
var buttons = '';
if (rowobject[5] == "False") {
buttons += '<input type="button" value="Edit" onclick="editQuestionnaire(' + options.rowId + ')">';
}
buttons += '<input type="button" value="Delete" onclick="deleteQuestionnaire(' + options.rowId + ')">';
if (rowobject[6] == ViewBag.EmptyGuid) {
buttons += '<input type="button" value="Publish" onclick="publishQuestionnaire(' + options.rowId + ')">';
}
else {
buttons += '<input type="button" value="Remove" onclick="removePublishQuestionnaire(' + options.rowId + ')">';
}
return buttons;
}
</script>
}
你直接在类中有代码,你需要一个方法。例如:
public class QuestionnaireController : Controller
{
public ActionResult Index()
{
ViewBag.EmptyGuid = Guid.Empty;
return View();
{
}
此错误实际上与 MVC 无关:这是无效的 C# 语法,并且您会收到编译错误。
附带说明一下 - 我建议当您可以使用强类型模型时根本不使用ViewBag
(或几乎从不使用)。rowobject[6]
也是如此:我不确定那是什么,但你绝对不希望数据读取器在你的视图上。当数据位于视图中时,它应该已经转换为模型。
另一方面,我认为在视图上使用Guid.Empty
或default(Guid)
并没有错。