0

这是查看 ViewPage.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 后,我想存储该值并传递给下一个 View 任何人都可以提出一些想法

4

1 回答 1

2

我建议你根本不要使用ViewBag

因此,在您的 javascript 中,您可以为您的文本框提供与User模型属性 ( 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 回答