0

これが私の見解です

@

using (Html.BeginForm("Display", "Home", @FormMethod.Post))
    {
    <div>Name:<a>@ViewBag.st</a><br /></div>
       <a></a>
    <div>City:<a>America</a></div>
    <br />
     <input type="submit" value="Submit" /> 
    <br />
    }

これはモデルクラスです

public class User { プライベート文字列 m_name = string.Empty;

public string Name
{
    get
    {
        return m_name;
    }
    set
    {
        m_name = value;
    }
}

}

これは私のコントローラークラスです

[HttpGet]
         public ActionResult Viewdetails()
         {
            User ur=new User();
            ur.Name = "Danny";
            ViewBag.st = ur.Name;
           return View();
         }

        [HttpPost, ActionName("Viewdetails")]
        public ActionResult Test()
        {
            return View();
        }
         [HttpPost]
         public ActionResult Display()
         {
             return View();
         }
    }

使用する代わりに、Viewdetails.cshtml のビューにダニーを表示する方法

@Viewbag
4

1 に答える 1

4

入力フィールドを使用して、フォームが送信されたときにその値がDisplayアクションに送信されるようにすることができます。また、コードを少しきれいにして、ViewBag.

したがって、問題のないモデルがあります。

public class User
{
    public string Name { get; set; }
}

次に、2 つのアクションを持つコントローラーを作成できます。1 つはモデルにデータを入力してViewdetails.cshtmlビューに渡すアクション、もう 1 つはフォームが送信されてDisplay.cshtmlビューをレンダリングするときに呼び出されるアクションです。

public class HomeController: Controller
{
    [HttpGet]
    public ActionResult Viewdetails()
    {
        User ur = new User();
        ur.Name = "SravanKumar";
        return View(ur);
    }

    [HttpPost]
    public ActionResult Display(User ur)
    {
        return View(ur);
    }
}

次に、Viewdetails.cshtmlビュー内でモデルを使用して、リンクの代わりに入力フィールドをレンダリングします。

@model User
@using (Html.BeginForm("Display", "Home", FormMethod.Post))
{
    <div>Name: @Html.EditorFor(x => x.Name)</div>
    <div>City: Secunderabad</div>
    <br />
    <input type="submit" value="Submit" /> 
}

そしてあなたのDisplay.cshtmlビューの中で:

@model User
<div>Thanks for choosing the name: @Model.Name</div>
于 2012-06-29T06:40:13.493 に答える