0

これはViewViewPage.cshtmlです

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

@ViewBag.st を編集するための私の jquery

    <script type="text/javascript">
  $(document).ready(function () {
    $('a').click(function () {
        var textbox = $('<input id="Text1" type="text" size="100"  />')
        var oldText = $(this).text();
        $(this).replaceWith(textbox);
        textbox.blur(function () {
            var newValue = $(this).val();
            $(this).replaceWith($('<a>' + newValue + '</a>'));
        });
        textbox.val(oldText);
    });


});

</script>

私のコントローラーメソッドは

public ActionResult Viewdetails()
    {
        User ur = new User();
        ur.Name = "Danny";

        ViewBag.st = ur.Name;
        return View();

    }

そして、私のモデル クラスは User.cs です

 public class User
{

    //public string name { get; set; }
private string m_name = string.Empty;

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

@ViewBag.title を編集した後、その値を保存して次のビューに渡したい

4

1 に答える 1

2

絶対に使わないことをお勧めViewBagします。

Userしたがって、JavaScript では、テキスト ボックスにモデル プロパティ ( Name)と同じ名前を付けることができます。

var textbox = $('<input type="text" size="100" name="Name" />');

次に、2 つのコントローラー アクション (GET と POST) を用意します。

public ActionResult Viewdetails()
{
    User ur = new User();
    ur.Name = "Danny";
    return View(ur);
}

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

そして内部Viewdetails.cshtml

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

そして内部Display.cshtml

@model User
<div>You have selected: @Model.Name</div>
于 2012-06-29T09:02:07.450 に答える