输入类型= "submit"如果值以大写字母开头,则无法将其值传递给服务器



我的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();

最新更新