【问题标题】:Passing value from textbox to controller as a parameter将值从文本框传递到控制器作为参数
【发布时间】:2016-06-23 13:34:32
【问题描述】:

所以在我看来,我需要一个像这样的简单文本框:

 <input type="text" name="CVR" placeholder="Enter CVR" required />

在同一个视图中,最后我有提交按钮:

 @Html.ActionLink("Submit", "SendMail", new { studentId = Html.ViewData.Model.StudentId, companyId = Html.ViewData.Model.CompanyId, applicationId = Html.ViewData.Model.ApplicationId, companyCVR = Model.CVR})

数据有效,直到“companyCVR = Model.CVR”。我无法将“companyCVR”更改为用户在上面的文本框中输入的文本。

这是我的控制器构造函数:

public ActionResult SendMail(string studentId, string companyId, int applicationId, string companyCVR)

从技术上讲,这应该可行:

contract.CVR = companyCVR;

当我硬编码(contract.CVR = "12345")时它可以工作。我的问题是将文本框中的值传递给 companyCVR,我试图将其作为参数传递给控制器​​。

我该如何解决这个问题?

【问题讨论】:

  • 澄清一下,您希望将用户在浏览器中输入的值分配给 companyCVR,并在页面在浏览器中时发生这种情况?
  • 是的。单击提交时,它应该采用该值并将其传递给控制器​​。不确定“当页面在浏览器中时”是什么意思?
  • 我的意思是在没有任何方式涉及服务器的情况下进行分配。
  • 我不确定是否需要。也不确定如何正确分配值,就像我对其他字段所做的那样?

标签: c# asp.net asp.net-mvc controller parameter-passing


【解决方案1】:

如果您使用&lt;form&gt; 可能会更容易。比如:

@using (Html.BeginForm("SendMail", "Contract", null, FormMethod.Post), new { id = "myForm" })
{
     <input type="hidden" value=@Html.ViewData.Model.StudentId name="studentId" />
     <input type="hidden" value=@Html.ViewData.Model.CompanyId name="companyId" />
     <input type="hidden" value=@Html.ViewData.Model.ApplicationId name="applicationId" />
     <input type="text" name="companyCVR" />

}

<input type="button" value="Submit" onclick="$('#myForm').submit();" />

【讨论】:

  • 谢谢,我稍微改了一下(你没有提到控制器),但现在可以了!现在我想知道是否可以将提交按钮放在页面末尾?我必须把所有的东西都放在表格里吗?我在这个文本框之后有一页静态文本:)
  • 您可以将按钮更改为
  • 如何在表单中添加 ID?
  • 忘了说。您必须为 jquery 添加一个引用并向表单添加一个 Id。
  • @using (Html.BeginForm("SendMail", "Contract", null, FormMethod.Post), new { id = "yourId" })
猜你喜欢
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
相关资源
最近更新 更多