ASP.Net Core在不使用javascript的情况下内联编辑记录



是否可以在URL操作中发送编辑后的值?下面是我的代码示例:

@result.Name->它是viewbaglist中的一个值(这是我想要覆盖并传递到Name=…中的值(

<div contenteditable="true" onkeydown="if (event.keyCode == 13) { event.preventDefault(); location.href='@Url.Action("UpdateInline", "Home", new { Name = })'}">
@result.Name
</div>

据我所知,有两种方法可以将编辑后的值发送到控制器操作方法。一种是提交Edit Form,另一种是使用JavaScript或JQuery Ajax方法。

在不使用JavaScript或JQuery的情况下,我们只能使用SubmitForm方法将表单(具有编辑后的值(提交到action方法。像这样(点击提交按钮将模型发布到编辑操作(:

@model MVCSample.Models.MyEntity
<div class="row">
<div class="col-md-4">
<form asp-action="Edit">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>

<div>
the edit field content...
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
</form>
</div>
</div>

此外,您现在似乎正在代码中使用JavaScript,当用户按下某个键(使用onkeydown事件(时,它将执行JavaScript脚本。因此,如果你想获得编辑后的值并将其添加到url中,请尝试修改你的代码如下:

<div contenteditable="true" id="nameinput" 
onkeydown="if (event.keyCode == 13) { event.preventDefault(); location.href = ('@Url.Action("UpdateInline", "Home")?name=' + document.getElementById('nameinput').innerHTML.trim()) }">
@result.Name
</div>
<form method="post" asp-action="UpdateInline" id="myForm">          
<input name="NewName" value="@result.Name" onkeydown="if (event.keyCode == 13) document.getElementById('myForm').submit();" style="background-color:transparent; border:none" />
</form>

最新更新