2016-11-05 15 views
-1

私はmvcプロジェクトに取り組んでいます。 私は外部キーをビューからコントローラに渡す方法

public class AddInfoViewModel 
{ 
    public myproject.Models.DomainModels.information information { get; set; } 
    public IEnumerable<myproject.Models.DomainModels.Companies> Companies { get; set; } 
    public long CompanyID { get; set; } 
} 

ビュー次のようにのviewmodel持っている:私は、プロジェクト内のアクションを作成するために送っ企業IDを実行したときに

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Create(information information) 
{ 
    informationRepository blinformation = new informationRepository(); 
    if (ModelState.IsValid) 
    { 
     double id = blinformation.GetLastIdentity() + 1; 
     information.ID = Convert.ToInt32(id); 
     //codes for add to db 
     ... 
    } 
} 

<div class="form-group"> 
    @Html.Label("company", new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.DropDownList("CompanyID", new SelectList(Model.Companies, "CompanyID", "Name"), "select company", htmlAttributes: new {@class = "form-control" }) 
     @Html.ValidationMessageFor(model => model.CompanyID, "", new { @class = "text-danger" }) 
    </div> 
</div> 

、ここでは、コントローラの私の行動ですがコントローラはゼロ(0)です。どうすればこの問題を解決できますか?

+0

?フォームを送信するときのPOSTメソッドでは?問題が何であるか説明してください。 –

+0

私の質問を編集しました –

+0

あなたのビューモデルは 'AddInfoViewModel'ですが、表示しているPOSTメソッドはそれと関係がありません(そのパラメータはtypeof' information'です)。 –

答えて

1

あなたのコードは、信頼ですが、あなたが

@Html.DropDownList("CompanyID", new SelectList(Model.Companies, "CompanyID", "Name") 

を交換する必要があります:あなたはその '0'をどういう意味ですか

@Html.DropDownListFor(model => model.CompanyID,...) 
関連する問題