ASP.Net mvc Url.Action参数始终为null

时间:2012-05-24 17:10:36

标签: asp.net-mvc asp.net-mvc-routing

对MVC不熟悉所以请耐心等待。

我要做的是,在第1页,用户将值输入到两个文本字段中,单击提交按钮,它将调用wcf服务,如果wcf调用返回已验证的值,则它应重定向到不同的页面并显示来自wcf的返回值。

我创建了这样的视图 -

      <input type="text" name="txtUniqueCode" value="@Model.UniqueCode" placeholder="unique identifier" />
            <label for="name">
                Vehicle Registration
            </label>
            <input type="text" name="txtRegistration" value="@Model.Registration" placeholder="Registration" />

            <a href="@Url.Action("ShowRepairDetails", "RepairDetails", new { uniqueCode = Model.UniqueCode, registration = Model.Registration })">Check Status</a>

用户在文本框中输入值后,一旦点击“检查状态”,我就会尝试使用Url.Action将值传递给控制器​​。但是当我调试并检查控制器上的参数值时,它们会以null返回给我。我不确定为什么??

我尝试用url.Action中的静态值替换参数值 -

  @Url.Action("ShowRepairDetails", "RepairDetails", new { uniqueCode = 1234, registration = "Test" })

工作正常,我在控制器端正确接收参数值。因此,据我所知,即使用户在文本框中输入了一些值,“模型”对象也不会更新。我在这里遗漏了一些东西。你能帮忙吗..

提前致谢
西

1 个答案:

答案 0 :(得分:1)

您似乎误解了此处的工作流程。代码中的链接由服务器在将页面发送到客户端之前计算。它无法使用用户稍后输入文本框的值。为此,您需要一个带有提交操作的表单,或者一个AJAX调用,它提取HTML元素的值并将它们发送回服务器。