0

フォームを検証しようとすると、次のエラーが発生します。「{」が必要ですが、「(」が見つかりました。ブロックステートメントは「{」と「}」で囲む必要があります。CSHTMLで単一ステートメントの制御フローステートメントを使用することはできません。このページの私のコード行は次のとおりです。

@{
var db= Database.Open("Games");
var sqlQ = "SELECT * FROM Games";
var data = db.Query(sqlQ);   
}
@{
    var fileerrorMessage = "";
    var NameerrorMessage = "";
    var Gamefile = "";
    var GameName = "";
    var isValid = true;
    if (IsPost) {
        if (file.IsEmpty()){
        fileerrorMessage = "Please upload a file.";
        isValid = false;
        }

    else (formName.IsEmpty()){
        NameerrorMessage = "Please give the game a name.";
        isValid = false;
    }

    if (isValid){
    var fileData = Request.Files[0];
    var fileName = Path.GetFileName(fileData.FileName);
    var fileSavePath = Server.MapPath("~/upload/" + fileName);
    fileData.SaveAs(fileSavePath);
    GameName=Request["formName"];
    Gamefile=fileName;
    var SQLINSERT = "INSERT INTO Games (Name, file_path) " + "VALUES (@0, @1)";
    db.Execute(SQLINSERT, GameName, Gamefile);
    Response.Redirect("default.cshtml");
    }

    else
    {
        <p class="message error">Please correct the errors and resubmit the form.</P> 
    }

    }
}
<form action="" method="post" enctype="multipart/form-data">

  <input type="file" name="file" id="file" /><p>
    @if(!fileerrorMessage.IsEmpty()) {
        <label for="file" class="validation-error">
            @fileerrorMessage
        </label>
    }
  <p><input type="text" name="formName" value="@GameName" />
     @if(!NameerrorMessage.IsEmpty()) {
        <label for="file" class="validation-error">
            @NameerrorMessage
        </label>
     }

  <input type="submit" value="Add Game" />
</form>

エラーページには、エラーが18行目にあることが示されています。これは、次の問題が発生していることを示しています。if (file.IsEmpty()){

4

2 に答える 2

1
else (formName.IsEmpty()){
    NameerrorMessage = "Please give the game a name.";
    isValid = false;

する必要があります:

else if (formName.IsEmpty()){
    NameerrorMessage = "Please give the game a name.";
    isValid = false;

if行方不明です!

于 2012-04-07T09:14:59.527 に答える
1

私は同様の問題でここに着陸しました-私にとっての問題は次のとおりでした:

@{
    var stuff = getSomeStuff();

    if (stuff.Whatever)
        doThing();
}
@if (stuff.Condition) {
<button/>
} else {
<a href=""></a>
}

問題は、上記のような明白なコードブロック内の最初のステートメントでさえ、中括弧なしで使用できるifステートメントがないことでした。したがって、上記は次のようになります。

@{
    var stuff = getSomeStuff();

    if (stuff.Whatever)
    {
        doThing();
    }
}
@if (stuff.Condition) {
<button/>
} else {
<a href=""></a>
}
于 2013-04-29T07:28:04.167 に答える