【问题标题】:MVC, Forms and current route parameters / IDMVC、表单和当前路由参数/ID
【发布时间】:2011-01-11 09:22:17
【问题描述】:

我有一个将数据回传到同一网页的表单。表单必须有一个 HTML ID,这样我的 JQuery 验证才能正常工作。

目前如果你想添加这样的 ID,你必须先添加一些其他的东西,比如控制器名称和动作名称等(这对我来说似乎有点垃圾)

<% using (Html.BeginForm("addcredits", "customer", FormMethod.Post, new { id = "addcreditform" }))

现在我的当前页面是/customers/addcredits/1,所以我需要以某种方式将“1”参数放入我的表单 - 我如何在没有某种黑客攻击的情况下做到这一点?我知道它需要是"customer" 之后的参数,但我不确定获取此数据的最佳方式。

【问题讨论】:

    标签: html asp.net-mvc model-view-controller forms


    【解决方案1】:

    您的控制器应该将数据传递给视图。

    由于您只希望将一个整数传递给视图,因此视图页面应该在页面定义中具有此继承:

    Inherits="System.Web.Mvc.ViewPage<int>"
    

    要在页面的某处显示整数,例如在您的表单中,您可以执行以下操作:

    <%= Model %>
    

    Model 是传递给 View 的对象,类型为 int。

    在控制器上发布时您必须执行以下操作:

    public ActionResult addcredits(int? id)
    {
        // Some post logic
        return View(id.Value);
    }
    

    瞧! id 参数是数字。我将它传回视图。

    【讨论】:

    • 顺便说一句,您不必使用Html.BeginForm,您也可以自己编写表单HTML。
    • ROFL - 我一直忘记那个该死的!
    猜你喜欢
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 2014-07-21
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2021-06-30
    相关资源
    最近更新 更多