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 に答える