2017-04-06 15 views
-1

この私のコントローラのビューラジオボタンを使用してテキストボックスの値を設定するにはどうすればよいですか?

public ActionResult rb() 
    { 
     subject ts = new subject(); 
     ts.subjectlist = db.tbSubjs.ToList(); 
     ts.selectsubj = ""; 
     return View(ts); 
    } 
    [HttpPost] 
    public ActionResult rb(subject sj, FormCollection frm) 
    { 
     if (ModelState.IsValid) 
     { 
      var selectsubj = sj.selectsubj; 
      string getcode = frm["subj"]; 
      ViewBag.ssss = getcode; 
     } 
     return View("Index"); 
    } 

と、これはここで

public class subject 
{ 
    public List<tbSubj> subjectlist { get; set; } 
    public string selectsubj { get; set; } 
} 

私のクラスですが、ラジオボタン

<div style="text-align: left"> 
@using (Html.BeginForm("rb", "Home")) 
{ 
<div>------</div> 
foreach (var ts in Model.subjectlist) 
{ 
<div> 
    @Html.Label(ts.SubjCode) 
    @Html.RadioButtonFor(m => m.subjectlist, ts.SubjCode) 
</div> 
} 

foreach (var getsubj in Model.subjectlist) 
{ 
    <div>------------------</div> 
<div> 
    @getsubj.SubjCode 
    @Html.RadioButton("subj", getsubj.SubjCode) 
</div> 
} 
<br /> 
<input id="Submit" type="submit" value="Submit" /> 
} 
</div> 

ための私のコードで、私は私の中で値を設定したいです私のラジオボタンの値を取得することによって、このビュー内のテキストボックス。

@model ATM.Models.subject 

@{ 
ViewBag.Title = "rb"; 
} 

<h2>rb</h2> 

@Html.TextBox(m => m.selectsubj) 

誰かが私を助けてくれると助けてください。

+0

わかりやすくするために、フォームを使用して別のビューにテキストボックスを表示していますか?または、これはすべて同じビューにありますか? – sleeyuen

+0

私は別のビューに行くでしょう –

+0

OK、ビュー間で上記の値を渡すために 'ViewBag.ssss'を使うことを意味しますか?あなたがそのアイデアと結婚していないなら、2番目のビューが基づいている 'ATM.Models.subject'モデルを介して渡すことができます。いずれにせよ、これがあなたがしようとしているものなら、私は適切な答えを加えることができます。私に知らせてください。 – sleeyuen

答えて

0

あなたのアクションが実際より以下のように見えると仮定すると:

[HttpPost] 
public ActionResult rb(subject sj, FormCollection frm) 
{ 
    if (ModelState.IsValid) 
    { 
     var selectsubj = sj.selectsubj; 
     string getcode = frm["subj"]; 
     ViewBag.ssss = getcode; 

     return View("view_with_textbox"); 
    } 

    return View("Index"); 
} 

あなたはこれを行うことができます:

[HttpPost] 
public ActionResult rb(subject sj, FormCollection frm) 
{ 
    if (ModelState.IsValid) 
    { 
     var selectsubj = sj.selectsubj; 
     string getcode = frm["subj"]; 

     var model = new ATM.Models.subject() 
     { 
      selectsubj = getcode 
     }; 

     return View("view_with_textbox", model); 
    } 

    return View("Index"); 
} 

。これによりモデル経由で値を渡します。

+0

もう1つ質問あります。私はどのように私のテキストボックスに表示することができますか?申し訳ありませんが、私はmvcに慣れていません –

+0

私はあなたがまだそれを試していないと推測していますが、値を持つモデルを渡して、そのモデルを '@ model'で上に宣言するViewで使用すると、 '@ H​​tml.EditorFor(m => m.selectsubj)'のように、そのモデルプロパティを使用する入力に値を自動的に公開します。 – sleeyuen

関連する問題