我的html中有两个按钮:保存&保存并退出。在服务器上,我检查按钮的值并相应地行动。但是,如果按钮的值始于服务器上的大写字母,则为无效。下部案例字母很好。
以下是我的代码
//html:
<input type="submit" class="btn btn-primary btn-block" name="submissionbutton" value="Save" />
<input type="submit" class="btn btn-primary btn-block" name="submissionbutton" value="Save & Exit" />
//服务器:
var button = Request.Form["submissionbutton"];
model.Save(id, db);
if (button == "Save & Exit")
{
return RedirectToAction("Index");
}
else
{
model = new EditEquipmentViewModel(id, db);
return View(model);
}
如果我将输入中的值从"保存"更改为"保存",则所有这些都可以正常工作,但是它在按钮本身上显示较低的情况"保存",这是不希望的。我不明白在输入类型="按钮"中如何将值从较低的情况更改为上情况。
我敢打赌,这个问题实际上是您的及时。如果是这样,请查看使用encodeURIComponent();
https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/encodeuricomponent
"没有endoduricomponent 服务器作为新字段的开始,并危及 数据。"
我认为以上将消毒您要发送的价值并解决问题。您也可以尝试一个按钮元素而不是输入元素。这样,您的价值将是您想要的任何内容,而不是按钮上显示的文本。另一种方法是从DIV元素中制作自己的按钮。我不确定这些建议是否真的会有所帮助,因为我本人不使用ASP.NET。
<button name="name" value="save" type="submit">Save</button>
<button name="name" value="saveexit" type="submit">Save & Exit</button>
我认为这与json序列化形式值有关:
尝试以下此链接:JSON属性现在从ASP .NET CORE 1.0.0-rc2-final到1.0.0
降低掉期外壳。替换此行:
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
with:
jsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();