1

マイページは次のコードで構成されています。

@{
var db= Database.Open("Surgestuff");
var sqlQ = "SELECT * FROM Comments";
var data = db.Query(sqlQ);
Page.Title = "Add Comment"; 
}
@{
    var CommenterrorMessage = "";
    var LengtherrorMessage = "";
    var date = @DateTime.Now;
        if (IsPost) {
        var CommName = "";
        var Comment = "";
        CommName=Request["formName"];
        Comment=Request["formComm"];
        var Dt = @DateTime.Now;
        var isValid = true;
        if (Comment.IsEmpty()){
            CommenterrorMessage = "This field is required";
            isValid = false;
        }

        else if (Comment.Length > 400){
            LengtherrorMessage = "Comment must be less than 400 characters";
            isValid = false;
        }

        else if (CommName.IsEmpty()){
            CommName = "Anonymous";
        }

        if (isValid){
        var SQLINSERT = "INSERT INTO Comments (Name, Comment, Dt) " + "VALUES (@0, @1, @2)";
        db.Execute(SQLINSERT, CommName, Comment, Dt);
        Response.Redirect("~/Comments");
        }

        else
        {
            <p class="message error">Please correct the errors and resubmit the form.</P> 
        }
    }
}
<fieldset><legend>Add Comment</legend>
<form action="" method="post" enctype="multipart/form-data">
  Name:
  <p><input type="text" id="Name" name="formName"/></p>
  Comment:
  <p><textarea cols="35" rows="5" id="Comment" name="formComm"/></textarea></p>
     @if(!CommenterrorMessage.IsEmpty()) {
        <label for="formComm" class="validation-error">
            @CommenterrorMessage
        </label>
    }
     @if(!LengtherrorMessage.IsEmpty()) {
        <label for="formComm" class="validation-error">
            @LengtherrorMessage
        </label>
    }

  <p><input type="submit" value="Add Comment" /></p>
</form>
</fieldset>

このページを実行しようとすると、次のエラーが表示されます。

' "2" は、コード ブロックの先頭では無効です。識別子、キーワード、コメント、"(" および "{" のみが有効です。' webmatrix のファイル ワークスペースを見ると、最初の終了 "}" がコード ブロック全体の終わりとして認識され、それが取得されるまで残りは無視されます。 Webmatrix 2.0 にアップグレードする前に、自分の Web サイトでまったく同じコードが動作していました。これを修正するにはどうすればよいですか?

4

2 に答える 2

1

最後に、コードをコピーして WebMatrix (私の仮想ボックス) に貼り付けました。@DateTime.NowRazor@{ ... }コード内に2 つの s があります。それらを次のように変更した場合:

... = DateTime.Now;

それは問題を解決します。

于 2012-07-02T14:46:26.700 に答える
0

Razorでは、@をそれ自体として使用する必要がある場合(Razorインジケーターではない)、次を使用します@@

だから試してみてください:@@0, @@1, @@2

ソース: http: //haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx

于 2012-06-29T04:59:09.237 に答える