【问题标题】:Pass input value to id in MVC from view从视图中将输入值传递给 MVC 中的 id
【发布时间】:2013-02-14 12:24:35
【问题描述】:

如何将输入框的值从视图传递到 URL 作为 ID 而不是 GET 参数?

如果查询字符串为空,我的家庭控制器会返回一个附加视图。

localhost:1111/home/job/1

将根据 id 从表中返回结果列表,而:

localhost:1111/home/job

将返回“空”视图。

Empty 视图包含一个非常简单的功能性表单,并返回表格结果,但是,我需要 URL 采用正确的格式 {controller}/{action}/{id},其中 id 来自输入.而我目前正在获取 {controller}/{action}/?jobno=1

空视图:

<form action='home/job/' method="post">
    <input type="text" name="jobno"/>
    <input type="submit" value="Submit" />
</form>

【问题讨论】:

  • 尝试将action='home/job/' 替换为action='/home/job'
  • 我试过了,表单和结果视图都可以工作,我只需要将输入值传递到 url。例如,如果输入值为 999,我需要 URL 读取“home/job/999”而不是“home/job”或“home/job?jobno=999”
  • 你对jQuery感到满意吗,它将追加查询字符串
  • 我从来没有真正使用过jQuery
  • 好的,所以我会向您发布完成这项工作的javascript。您发布的表单是呈现的 HTML 标记?或者你刚刚手动编码为表单?

标签: asp.net razor asp.net-mvc-4


【解决方案1】:

你可以这样试试吗:

<form id="form1"  action='/home/job/' method="post"> 
    <input id="jobno" type="text" name="jobno"/>
    <input type="submit" value="Submit" onclick="AddingQS();">/>
</form>


  <script type="text/javascript">
    function AddingQS(){
        var formaction=document.getElementById('form1');
        formaction.action+=document.getElementById('jobno').value;      
    }
  </script>

这是工作的fiddle

【讨论】:

  • 它仍然给出相同的结果:“/home/job/”没有附加到末尾的输入值。我认为这与 MVC 4 及其处理路由的方式有关
  • 还是不行,我不明白为什么它不适合我,如果它对你有用!哈哈
  • 我已经尝试过@user2071225,这对我来说非常有效。您是否将表单的 ID 保留为 form1
猜你喜欢
  • 2022-01-12
  • 2015-10-01
  • 1970-01-01
  • 2021-06-29
  • 2015-10-19
  • 1970-01-01
  • 2020-08-02
  • 2019-05-16
  • 2015-01-28
相关资源
最近更新 更多