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

时间:2013-10-23 08:17:33

标签: asp.net-mvc-4 viewbag

我需要在控制器中获取Guid.Empty并将其传递给view。我尝试使用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>
}

1 个答案:

答案 0 :(得分:2)

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

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

此错误实际上与MVC无关:这是无效的C#语法,并且您收到编译错误。

侧面说明 - 当你可以使用强类型模型时,我建议不要使用ViewBag(或几乎所有)。同样适用于rowobject[6]:我不确定那是什么,但您绝对不希望在View上使用数据读取器。到数据在视图中时,它应该已经转换为模型 另一方面,我认为在视图上使用Guid.Emptydefault(Guid)并不是错误