C# 将模型属性从Html表单发送到[HttpPost]控制器时出现问题
我有一个像这样的html表单C# 将模型属性从Html表单发送到[HttpPost]控制器时出现问题,c#,jquery,.net,model-view-controller,C#,Jquery,.net,Model View Controller,我有一个像这样的html表单 @using (Html.BeginForm("_YariMamulEkle", "Home", FormMethod.Post, new {@id ="YariMamulKaydetForm" })) { <div class="row"> @Html.Label("Y
@using (Html.BeginForm("_YariMamulEkle", "Home", FormMethod.Post, new {@id ="YariMamulKaydetForm" }))
{
<div class="row">
@Html.Label("Yarı Mamul Stok Kodu", new {@class= "form-label"})
</div>
<div class=" row">
<select class=" form-select" id="chosenYariMamulStock">
<option selected disabled hidden>Seçiniz</option>
@foreach (var item in (List<YariMamulStock>)@ViewBag.seededYariMamuls)
{
<option value ="@item" data-foo="@item.YariMamulStockName"> @item.YariMamulStockCode</option>
}
</select>
</div>
<div class="row">
@Html.Label("Stok Adı", new {@class = "form=label"})
</div>
<div class="row">
@Html.TextBoxFor(x =>x.YariMamulStockName, new {@id = "disableStockName", @class = "form-control", @disabled = "disabled"})
</div>
<div class="row">
@Html.Label("Yarı Mamul (Kg)", new {@class = "form-label"})
</div>
<div class="row">
@Html.TextBoxFor(x => x.YariMamulStockKg, new {@id = "yariMamulStockKg", @class= "form-control" })
</div>
<hr />
<div class="row">
<button class="btn btn-success" id="YeniMamulKaydet" type="submit">Tamam</button>
<button class="btn" type="button">Iptal</button>
</div>
}
我正在尝试将值发送到此控制器
[HttpPost]
public ActionResult _YariMamulEkle(YariMamulStock yariMamul)
{
TempYariMamulList.Add(yariMamul);
ViewBag.YariMamulList = TempYariMamulList;
foreach (var item in db.YariMamulStocks)
{
if (item.isSeeded == true)
{
seededYariMamuls.Add(item);
}
}
ViewBag.SeededYariMamuls = seededYariMamuls;
return RedirectToAction("FormEkle");
我正在尝试发送这3个属性[YariMamulStockCode,YariMamulStockName,YariMamulStockKg]
public class YariMamulStock
{
[Key]
public int Id { get; set; }
public string YariMamulStockCode { get; set; }
public string YariMamulStockName { get; set; }
public int YariMamulStockKg { get; set; }
public bool? isSeeded { get; set; }
}
我可以发送[YariMamulStockKg]值,并可以在ActionResult Post模态参数中看到,但其他2个属性未显示
YariMamulStockCode属性是我们可以从selectlist中选择的,它发送空值
YariMamulStockName属性为,在jquery行中填充的属性发送空值
谢谢你的帮助
获取方法的操作
public ActionResult _YariMamulEkle()
{
ViewBag.YariMamulList = TempYariMamulList;
foreach (var item in db.YariMamulStocks)
{
if (item.isSeeded == true)
{
seededYariMamuls.Add(item);
}
}
ViewBag.SeededYariMamuls = seededYariMamuls;
return PartialView();
}
Viewbag.seedyarimamuls中的数据是
List<YariMamulStock> seededYariMamuls = new List<YariMamulStock>();
new YariMamulStock{YariMamulStockCode = "132L.146S-1", YariMamulStockName = "Şeker",isSeeded =true},
new YariMamulStock{YariMamulStockCode = "132L-2", YariMamulStockName = "Su", isSeeded=true},
new YariMamulStock{YariMamulStockCode = "132L-3", YariMamulStockName = "Limon",isSeeded =true},
new YariMamulStock{YariMamulStockCode = "146S-2", YariMamulStockName = "Kauçuk",isSeeded =true},
new YariMamulStock{YariMamulStockCode = "146S-2", YariMamulStockName = "Mısır Özü",isSeeded =true},
List seedyarimamuls=new List();
新的YariMamulStockCode=“132L.146S-1”,YariMamulStockName=“Şeker”,isseeed=true},
新的YariMamulStockCode=“132L-2”,YariMamulStockName=“Su”,isseeed=true},
新的YariMamulStockCode=“132L-3”,YariMamulStockName=“Limon”,isseeed=true},
新的YariMamulStockCode=“146S-2”,YariMamulStockName=“Kauçuk”,isseeed=true},
新的YariMamulStockCode=“146S-2”,YariMamulStockName=“MısırÖzü”,isseeed=true},
好的,我解决了这个问题,在我想要回我的模型的属性中添加了一个name属性
<select name = "YariMamulStockCode">
与
这解决了[YariMamulStockName]问题您能否显示此视图的Get操作。请?在这一页的末尾,我写下了get动作。这个动作是其他动作的局部视图@SergeThank,我也需要YariMamulStock类。我看不出您在哪里定义了seedyarimaull,它已经将该类放在Post操作和images@serge之间了,因为数据没有正确地呈现为html,如果您使用普通提交而不是ajax Post,浏览器将发送select控件的“value”字段,但是,您绑定了一个c#object实例(而不是字符串或其他基本类型),最好检查浏览器发送给服务器的提取数据是什么。
<select name = "YariMamulStockCode">
<option value = "YariMamulStockCode">
@Html.TextBoxFor(x => x.YariMamulStockName, new { @id = "disableStockName", @class = "form-control", @disabled= "disabled" })
@Html.TextBoxFor(x => x.YariMamulStockName, new { @id = "disableStockName", @class = "form-control", @readonly = "readonly" })