0

actionresult で送信ボタンをクリックすると呼び出されますが、models.Soru というモデルでパラメータがすべて空で、フォームとして名前が付けられています。

私の Soru() コンストラクターのようにすべてのプロパティを送信します。空の文字列または int の場合は 0。ビューでテキストボックスの値を編集しても、textboxfor<> は値を投稿できません。

誰かアイデアがありますか?

public class Soru
{
    public int ID;
    public string Ad;
    public string SoruIcerik;
    public string Cevap;
    public int Sira;

    public Soru()
    {
        ID = 0;
        Ad = string.Empty;
        SoruIcerik = string.Empty;
        Cevap = string.Empty;
        Sira = 0;
    }
}

//コントローラーはこちら

    [ValidateInput(false)]
    [HttpPost]
    public ActionResult Index(Models.Soru form)
    {

        return null;
    }

// そして見る

@model X.Models.Soru
@{


using (Html.BeginForm())
{
    <div class="col-md-7">

        @Html.TextAreaFor(m => m.SoruIcerik, new { @name = "soruIcerik", @id = "soruIcerik", @rows = "10", @cols = "80" })

    </div>
    <div class="col-md-5">
        <div class="col-md-4 formSatiri">
            <label class="formSatiri">
                Soru Adi :
            </label>
        </div>
        <div class="col-md-8">
            @Html.TextBoxFor(m=>m.Ad, new { @class = "formSatiri" })
        </div>
        <div class="col-md-4 formSatiri">
            <label class="formSatiri">
                Cevap :
            </label>
        </div>
        <div class="col-md-8">
            @Html.TextBoxFor(m => m.Cevap, new { @class = "formSatiri" })
            </div>
        <div class="col-md-12 formSatiri">
            <input type="submit" class="btn btn-primary btn-sm pull-left" value="Kaydet"/>
        </div>
    </div>
}

}
4

1 に答える 1

2

ここに間違った構文を書きました:

@Html.TextAreaFor(m => m.SoruIcerik, new { @name = "soruIcerik", @id = "soruIcerik", @rows = "10", @cols = "80" })

これは次のようになります。

@Html.TextAreaFor(m => m.SoruIcerik, new { @name = "SoruIcerik", @id = "SoruIcerik", @rows = "10", @cols = "80" })

name と id は "soruIcerik" で、これはプロパティ名 "SoruIcerik" と一致する必要があります。

または、次のように単純に書くこともできます。

@Html.TextAreaFor(m => m.SoruIcerik, new {@rows = "10", @cols = "80" })

コントロールは、次のような html でレンダリングされます。

<textarea id="SoruIcerik" name="SoruIcerik" rows="10" cols="80"></textarea>

ここで name と id は、モデルで定義されたプロパティと同じでなければなりません。

クラス変数をプロパティとして作成する必要があります。お気に入り:

public class Soru
{
    public int ID {get;set};
    public string Ad {get;set};
    public string SoruIcerik {get;set};
    public string Cevap {get;set};
    public int Sira {get;set};
}
于 2014-07-20T15:57:47.750 に答える