2

私はmvc 3のかみそりにこのコードを持っています

@using (Html.BeginForm("MyAction", "MyController"))
{
    <input type="text" id="txt" name="txt"/>          
    <input type="image" src="image.gif" alt="" />
}   

コントローラーには、このコードがあります

[HttpPost]
public ActionResult MyAction(string text)
{
    //TODO something with text and return value...
}

今、新しい値を送信する方法、たとえば id をアクション結果に送信する??? ありがとう

4

1 に答える 1

4

ビューモデルを使用します:

public class MyViewModel
{
    public string Text { get; set; }

    // some other properties that you want to work with in your view ...
}

次に、このビュー モデルをビューに渡します。

public ActionResult MyAction()
{
    var model = new MyViewModel();
    model.Text = "foo bar";
    return View(model);
}

[HttpPost]
public ActionResult MyAction(MyViewModel model)
{
    // remove the Text property from the ModelState if you intend
    // to modify it in the POST controller action or HTML helpers will
    // use the old value
    ModelState.Remove("Text");
    model.Text = "some new value";
    return View(model);
}

そして、ビューはこのモデルに強く型付けされます:

@model MyViewModel

@using (Html.BeginForm("MyAction", "MyController"))
{
    @Html.EditorFor(x => x.Text)
    <input type="image" src="image.gif" alt="" />
}
于 2012-06-27T06:55:11.617 に答える