我有一个电话号码通知模型(用户通过与他们的帐户关联的电话号码获得紧急情况通知,并且他们可以设置调用这些电话的顺序)。大多数情况下,模型的电话号码部分是必需的,但在创建新用户的过程中存在一种特殊情况,我们不想强制使用它。
我创建了一个非常简单的子对象 UserCreationPhoneNotificationModel,它继承自上述 UserPhoneNotificationModel。还有一些其他小的更改,但这里的相关更改是覆盖 PhoneNumber 字段,以便不再需要它。
在父模型中它是
[Required]
public virtual string PhoneNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)
在子模型中它只是
public override string PhoneNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)
我认为这可以解决问题,但显然不是。我认为问题在于 RequiredAttribute 上会有 Inherited = true ,但事实并非如此,所以我不完全确定为什么它会被继承到子类中。
我做了双重检查以确保,从父类中的字段中删除 Required 也使得子类中的字段不需要,所以这绝对是某种继承的东西。
我最终围绕路由进行了一些重构以允许代码拆分,但按照 react/webpack 说明,我仍然只生成了 2 个入口包。
Index.tsx
import React from "react"
import { render } from "react-dom"
import { Provider } from "react-redux"
import { store } from "services/configureStore"
import { ConnectedApp } from "src/App"
import { ConnectedFeatureToggleProvider } from "./components/AppWrapper/FeatureToggleProvider"
const renderApp = () => {
render(
<Provider store={store}>
<ConnectedFeatureToggleProvider>
<ConnectedApp />
</ConnectedFeatureToggleProvider>
</Provider>,
document.querySelector("#app"),
)
}
// run app when FIT Core functions are ready
window.onFitCoreReady = () => {
renderApp()
}
Run Code Online (Sandbox Code Playgroud)
App.tsx
import React, { useEffect, Suspense } …Run Code Online (Sandbox Code Playgroud)