1

我需要在控制器中获取 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>
}
4

1 回答 1

2

您直接在类中有代码,您需要一个方法。例如:

public class QuestionnaireController : Controller
{
    public ActionResult Index()
    {
        ViewBag.EmptyGuid = Guid.Empty;
        return View();
    {
}

这个错误实际上与 MVC 无关:这是无效的 C# 语法,您会遇到编译错误。

ViewBag附带说明 -当您可以使用强类型模型时,我建议您根本(或几乎永远)不要使用。同样适用rowobject[6]:我不确定那是什么,但您绝对不希望数据阅读器出现在您的视图中。当数据出现在视图中时,它应该已经转换为模型。
另一方面,我不认为使用或视图是错误的。Guid.Emptydefault(Guid)

于 2013-10-23T08:22:58.343 回答