Skip to main content
 首页 » 编程设计

c#之将模型属性的值作为 ajax 参数发送

2024年01月26日35rubylouvre

我的查看页面中有以下表格

@using (Html.BeginForm()) 
{ 
   @Html.EditorFor(model => model.Product_ID) 
 
   <input id="idd" type="file" class="file"> 
 
   // form sumbit button 
   <input type = "submit" value="Create" />  
 
} 

我想在单击此表单的提交按钮之前将上面插入的 Product_ID 作为 ajax 对象路由值发送。为此,我像这样创建它 product_ID = Model.Product_ID但是这个 product_ID 变空了。

$('#idd').click(function () { 
 
    $.ajax({ 
        url: '@Url.Action("CreateDirectory", "Home",new { product_ID = Model.Product_ID })', 
        type: "POST", 

Controller

    [HttpPost] 
    public JsonResult CreateDirectory(string product_ID) 
    { 
      ........... 
    } 

编辑

在上面的脚本中使用警报我尝试显示 Product_ID

alert('@Model.Product_ID');

相同的结果没有显示值(value)

请您参考如下方法:

@Url.Action() 是 Razor 代码,它在发送到 View 之前在服务器上进行评估,因此如果 Model.Product_ID 的初始值为 null 那么您的代码将只呈现 url: '/Home/CreateDirectory'。生成文本框后更改值不会更新 url 的值。

改为使用 ajax data 选项来传递文本框的值

$('#idd').click(function () { 
    $.ajax({ 
        url: '@Url.Action("CreateDirectory", "Home")', // modify 
        data: { product_ID: $('#Product_ID').val() }, // add this 
        type: "POST",