2

フィードバック フォームにチェックボックスがあり
ここに画像の説明を入力
ます。モデルにチェックボックスを追加したようです

  namespace CorePartners_Site2.Models
 {
public class CareerForm
{
    //...
    public List<CheckBoxes> EmploymentType { get; set; }                                       
 }

public class CheckBoxes
{
    public string Text { get; set; }
    public bool Checked { get; set; }
}
 }

コントローラーに追加

    [HttpGet]
    public ActionResult CareerForm()
    {
        CareerForm model = new CareerForm();

        model.EmploymentType = new List<CheckBoxes>
        {
            new CheckBoxes { Text = "Fulltime" },
            new CheckBoxes { Text = "Partly" },
            new CheckBoxes { Text = "Contract" }
        };

        return View(model);
    }

しかし、選択したチェックボックスをメールに追加する必要がありますが、その方法がわかりません。
私は試した

 public ActionResult CareerForm(CareerForm Model, HttpPostedFileBase Resume)
    {
        System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
        msg.BodyEncoding = Encoding.UTF8;
        string message = //...
                         "Type: " + Model.EmploymentType;
        msg.Body = message;

    //....
    }

しかし、私はメールにType: System.Collections.Generic.List`1[CheckBoxes]
というテキストだけを受け取ります 。

4

3 に答える 3

1

次のようなもの

string message = "Type: ";

foreach(var item in Model.EmploymentType)
{
    if (item.Checked)
        message += item.Text;
}
于 2013-05-27T07:23:28.920 に答える
1

あなたmodel.EmploymentTypeList<CheckBoxes>

model.EmploymentType = new List<CheckBoxes>

インデックスを使用してその値にアクセスする必要があります。文字列 a に変換していますSystem.Collection.Generic.

于 2013-05-27T07:21:26.013 に答える
1

リスト内のチェックされた各チェックボックスからテキスト値を取得する必要があります。

これはリストです:

model.EmploymentType = new List<CheckBoxes>...

チェックしたものが必要です:

var checked = model.EmploymentType.Where(x => x.Checked);

Text次に、これらのボックスからプロパティが必要です。

string message = "Type: " + checked.Text;

これをコントローラーアクション内にまとめると、次のようになると思います。

public ActionResult CareerForm(CareerForm Model, HttpPostedFileBase Resume)
{
    System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
    msg.BodyEncoding = Encoding.UTF8;
    string message = "Type: ";
    foreach(var box in Model.EmploymentType.Where(x => x.Checked)) {
        message += box.Text + " ";
    }
    msg.Body = message;
}
于 2013-05-27T07:28:09.820 に答える