在控制器中获取 Guid.Empty 并将其传递给视图



我需要在控制器中获取 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.Emptydefault(Guid)并没有

最新更新